2010-10-17 4 views
1

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

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

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

  4. Я хочу, чтобы избавиться от индекса. 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

ответ

0

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

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

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

Смежные вопросы