Назад | Перейти на главную страницу

Как вставить index.php в каждый URL с помощью .htaccess?

Пример: Мой сайт называется так:

www.example.com/controller/method/parameter1/parameter2

Теперь .htaccess нужно переписать этот URL в:

www.example.com/index.php/controller/method/parameter1/parameter2

Но проблема в том, что в случае img, css или js каталог, перенаправления происходить не должно.

Как я могу этого добиться? Я знаю только, что здесь мой друг - движок перезаписи модов.

Чтобы завершить ответ Хала Вейра, результирующее правило должно быть примерно таким:

RewriteBase /
RewriteCond %{REQUEST_URI}!^(/css/|/js/|/images/|/robots.txt)
RewriteRule . /index.php/ [L]

Либо вы фильтруете его, как рекомендовал другой, либо фильтруете файлы, существующие на жестком диске:

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php/ [L]

В наши дни большинство систем CMS фильтруют его вот так.

Вы можете сделать что-то вроде следующего:

RewriteCond $1 !^(css|js|images|robots\.txt)