Я никогда не видел эту настройку .htaccess
раньше, хотя она может работать. Я использовал это для каждого проекта CI, который я сделал, попробуйте:
<IfModule mod_rewrite.c>
RewriteEngine on
# If the start of the URL doesn't match one of these...
RewriteCond $1 !^(index\.php|robots\.txt|assets|cache|themes|uploads)
# Route through index.php
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>
Добавить, не забудьте об этом в config.php
:
/*
|--------------------------------------------------------------------------
| Index File
|--------------------------------------------------------------------------
|
| Typically this will be your index.php file, unless you've renamed it to
| something else. If you are using mod_rewrite to remove the page set this
| variable so that it is blank.
|
*/
$config['index_page'] = '';
И помните: это не будет «удалять» index.php
из вашего URL автоматически, а скорее направит запрос через него, если его нет. Если у вас есть жестко закодированные ссылки с index.php
, их нужно будет изменить, или вам потребуется дополнительная конфигурация .htaccess
. Если вы используете функции URL-адреса CI, такие как base_url()
, site_url()
и anchor()
, они не будут использовать index.php
, если вы не указали их в конфигурации выше.