Правила Apache mod_rewrite игнорируются, когда запрос URI содержит известное расширение - PullRequest
1 голос
/ 22 марта 2012

Вот мои правила:

# Rewrite rules
RewriteRule    ^$ path/to/webroot/index.php   [L]
RewriteRule    (.*) path/to/webroot/index.php [L]

Я бы ожидал переписать все запросы на: path / to / webroot / index.php (обратите внимание, я упростил это для демонстрационных целей)

Тесты:

Request               Response      Result
/test                 200           [PASSED]  
/another_test         200           [PASSED]

/index.html           404           [FAILED]
/index.htmlXX         200           [PASSED]

/test.css             404           [FAILED]
/test.cssXX           200           [PASSED]

/index.php            200           [PASSED]

tl; dr:% .html &% .css терпит неудачу, все остальное проходит.

Похоже, что запросы, содержащие расширения, которые понимает сервер (html, css, ...), перезаписываются, игнорируются. Единственным исключением в моем тесте является .php, который сервер перенаправляет и обслуживает правильно.

К сожалению, в настоящее время у меня нет доступа к журналам сервера.

Я делаю это неправильно?

Ответы [ 2 ]

0 голосов
/ 23 марта 2012

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

«Проблема» возникла, когда Nginx используется для обслуживания статических активов -js | ico | gif | jpg | jpeg | png | css | etc | etc ... и, следовательно, правила mod_rewrite не применяются ни к каким запросам с этими расширениями файлов.

Очевидно, что решение заключается в создании перезаписиправила для активов, использующих HttpRewriteModule

0 голосов
/ 23 марта 2012

Похоже, что если файлы существуют , то ваши rewriterules не применяются.Это часто происходит из опции Multiviews.

Решение попробовать:

  • отключить MultiViews в .htaccess: Options -MultiViews
  • удалить MultiViews из конфигурации по умолчанию
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...