Простая задача с простым решением
- убедитесь, что в настройках 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, ),
- проблема решена : )