serii81
@serii81
Я люблю phр...

Как решить проблему с ЧПУ для Yii2?

В корневом каталоге и в папке web создал по файлу .htaccess
В .htaccess из корневого файла прописал
Options +FollowSymLinks
IndexIgnore */*
RewriteEngine on

RewriteCond %{REQUEST_URI} !^/(web)
RewriteRule ^assets/(.*)$ /web/assets/$1 [L]
RewriteRule ^css/(.*)$ web/css/$1 [L]
RewriteRule ^js/(.*)$ web/js/$1 [L]
RewriteRule ^images/(.*)$ web/images/$1 [L]
RewriteRule (.*) /web/$1

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /web/index.php%


в .htaccess из папки web
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule . index.php%


Конфиг из config/web.php
'urlManager' => [
      'enablePrettyUrl' => true,
      'showScriptName' => false,
      'enableStrictParsing' => false,
      'rules' => [
        // ...
      ],


baseUrl = ''

Мод rewrite включен, в apache2.conf стоит AllowOverwirite All для /var/www

В результате ссылки преображаются, а страница не найдена.
Буду рад за помощь)))
  • Вопрос задан
  • 178 просмотров
Решения вопроса 3
Вот так сделайте в корне проекта, только public на web измените

И стандартный htaccess для папки web
RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule . index.php
Ответ написан
qonand
@qonand
Software Engineer
попробуйте заменить в корневом каталоге httaccess на такой
Options All -Indexes -Includes +FollowSymlinks

<IfModule mod_rewrite.c>    
    RewriteEngine On
</IfModule>

<IfModule mod_rewrite.c>
    RewriteCond %{REQUEST_URI} ^/.*    
    RewriteRule ^(.*)$ web/$1 [L]

    RewriteCond %{REQUEST_URI} !^/web    
    RewriteCond %{REQUEST_FILENAME} !-f [OR]
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^.*$ web/index.php
</IfModule>


а в web на
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php
Ответ написан
serii81
@serii81 Автор вопроса
Я люблю phр...
Вот решение моей проблемы https://webformyself.com/nastrojka-chpu-v-yii2/
после этих изменений все заработало, кроме одного косяка, в шаблоне из views/layouts/basic (у меня он basic) прописал меню
<li role="presentation" class="active">
              <?php echo HTML::a('Главная', '/web/'); ?>
          </li>

и после изменений в .htaccess нужно удалить папку web из ссылки.
Все спасибо за помощь.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы