У меня были большие проблемы с удалением index.php. Как правило, приведенный ниже .htaccess был протестирован на нескольких серверах и обычно работает:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
<Files "index.php">
AcceptPathInfo On
</Files>
Если вам не повезло с этим, то следующий шаг - настроить ваш конфигурационный файл. Попробуйте некоторые другие протоколы URI, например,
| 'AUTO' Default - auto detects
| 'PATH_INFO' Uses the PATH_INFO
| 'QUERY_STRING' Uses the QUERY_STRING
| 'REQUEST_URI' Uses the REQUEST_URI
| 'ORIG_PATH_INFO' Uses the ORIG_PATH_INFO
$config['uri_protocol'] = 'ORIG_PATH_INFO';
Если вам все еще не повезло, попробуйте изменить правило перезаписи, включив в него подпапку. Это часто проблема, если вы используете временный URL на сервере разработки и т. Д .:
RewriteRule ^(.*)$ /subofolder1/subfolder2/index.php/$1 [L]
Просто поиграйте с этими опциями, надо работать. Также убедитесь, что для вашего индексного файла установлено значение:
$config['index_page'] = '';
Удачи!