Настройка URL в Yii, удаление index.php из адреса ссылок

Простая задача с простым решением

  • убедитесь, что в настройках apache включен mod_rewrite

плохо:

#LoadModule rewrite_module modules/mod_rewrite.so

хорошо:

LoadModule rewrite_module modules/mod_rewrite.so
  • создайте .htaccess файл рядом в корне сайта(где index.php) и скопируйте содержимое:
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)\?*$ index.php/$1 [L,QSA]

если первые вариант не работает:

RewriteEngine on
# if a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# otherwise forward it to index.php
RewriteRule . index.php
  • должна получиться такая файловая структура
www
- protected
- index.php
- .htaccess

Мы научили сервер понимать ссылки без index.php, теперь надо сделать так, чтобы приложение генерировало ссылки такого же формата

  • Отредактируйте конфигурационный файл main.php следующим образом:
'urlManager'=>array(
'urlFormat'=>'path',
'showScriptName'=>false,
'caseSensitive'=>false,
),
  • проблема решена : )

Оставить комментарий