переписать правило в .htaccess: что оно делает - PullRequest
1 голос
/ 18 сентября 2010

Что делает эта строка в .htaccess и когда она мне понадобится?

RewriteRule !.(js|css|ico|gif|jpg|png)$ index.php

Я работаю с Zend и заметил, что .htaccess, сгенерированный Zend, не имеет этого правила, но я видел учебник, в котором оно есть, без объяснения причин.

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]

Ответы [ 2 ]

4 голосов
/ 18 сентября 2010

Это RewriteRule перенаправление каждого запроса , за исключением запросов для файлов этих типов (js, CSS, значки, графика GIF / JPG / PNG) на index.php.

Это так, что запросы на статические ресурсы не обрабатываются index.php (что, как правило, хорошо, потому что запускать экземпляр PHP дорого).

Однако это уже обрабатывается в блоке кода ниже. Эта часть:

RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]

Исключает перенаправление на index.php для файлов, которые физически существуют (-s); символические ссылки (-); и существующие каталоги (-d).

Если вы используете второй указанный вами блок (созданный Zend), все в порядке.

Ссылка в руководстве Apache

1 голос
/ 18 сентября 2010

Правило:

RewriteRule !.(js|css|ico|gif|jpg|png)$ index.php

в основном гласит: «Если запрос НЕ (!) Заканчивается ($) на .js / css / ico / giv / jpg / png, перенаправьте его на index.php".

Вам нужно это правило, чтобы избежать отправки изображений / стилей и запросов js-скриптов в index.php.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...