Где подходящее место для записей mod_rewrite? - PullRequest
1 голос
/ 17 октября 2010

Ради любви к Богу, я не могу заставить этот mod_rewrite работать должным образом. Вместо того, чтобы делать метод проб и ошибок методом грубой силы, позвольте мне спросить здесь.

  1. Я хочу, чтобы правила mod_rewrite применялись ко ВСЕМ доменам.
  2. Я хочу записи mod_rewrite в httpd.conf
  3. Я хочу избавиться от этого WWW-вируса (для целей SEO):

    http://www.example.com> http://example.com

  4. Я хочу избавиться от index.html (для SEO, Google индексирует его, а не просто домен):

    http://www.example.com/index.html> http://example.com

    http://www.example.com/some/index.html> http://example.com/some/index.html

Домены находятся внутри <virtualhost> записей. Я не мог понять, где поставить то, что или какой из них должен иметь приоритет. Как я уже упоминал, я хотел бы применить эти 2 правила ко ВСЕМ ДОМЕНАМ на сервере.

Ситуация усугубляется ssl.conf. Нужно ли вводить все это в ssl.conf? Что произойдет, когда есть 2 перенаправления, такие как:

http://www.example.com/index.html > http://example.com/index.html > http://example.com

Спасибо большое. Это быстро стало настолько запутанным.

Maria

1 Ответ

0 голосов
/ 18 октября 2010

Это решает это для меня.Как я и подозревал, существует большая разница в применении rewriterule.Многие люди, в том числе и подлые, похоже, не знают об этом.

http://wiki.apache.org/httpd/RewriteContext

Сервер Apache HTTPD обрабатывает запросы в отдельных фазах.Хотя это обычно прозрачно для пользователя и администратора, оно влияет на поведение mod_rewrite, когда наборы правил размещаются в разных контекстах.Для упрощения немного: когда правила размещаются в блоках VirtualHost (или в контексте основного сервера), они оцениваются до того, как сервер еще не сопоставил запрошенный URI с путем файловой системы.И наоборот, когда правила помещаются в файлы .htaccess или в блоки Справочника в конфигурации основного сервера, они оцениваются после того, как эта фаза произошла.

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