Как я могу использовать mod_rewrite для перенаправления на index.php, кроме ресурсов? - PullRequest
1 голос
/ 13 июня 2009

Я бы хотел, чтобы mod_rewrite вступил в силу для любых несуществующих имен файлов, за исключением случаев, когда это имя файла заканчивается на js, css, gif и т. Д., Чтобы они возвращали обычные 404 с ...

Я попробовал это:

RewriteCond %{REQUEST_FILENAME} \.(js|ico|gif|jpg|png|css|pdf)$ [OR]
RewriteCond %{REQUEST_FILENAME} favicon.ico$ [OR]
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^(.*)$ /index.php/$1 [L]

Который я где-то нашел в Интернете, но, похоже, он не работает. Мои несуществующие JS-файлы все еще направляются в мой файл index.php.

Ответы [ 3 ]

2 голосов
/ 13 июня 2009

Попробуйте это правило:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule !.*\.(js|ico|gif|jpg|png|css|pdf)$ /index.php%{REQUEST_URI} [L]
0 голосов
/ 13 июня 2009

Возможно, вы захотите использовать флаг [NC] в первой строке, если вы можете иметь не только файлы .js, но также файлы .Js или .JS или .jS ...

0 голосов
/ 13 июня 2009

Вы добавили команды, которые идут перед файлом .htaccess? Понравилась эта строка?

RewriteEngine On
...