Как изменить мой файл .htaccess, чтобы перенаправить URL-адрес только для одного домена, и не переписывать другие домены, размещенные на том же сервере - PullRequest
0 голосов
/ 14 октября 2011

Я переключил программное обеспечение для ведения блогов (MT на WordPress) на сайте и мне нужно перенаправить запросы на http://www.domain1/atom.xml на http://www.domain1.com/feed/atom.

Я использовал простое правило Redirectmatch, но понял, что онотакже перенаправление запросов на другой сайт (домен2), который размещен на сервере, в подкаталоге домена1, чего я не хочу (его фид по-прежнему находится на http://www.domain2.com/atom.xml).

Как мнеполучить перенаправление только для domain1?

Я пытался сделать следующее, но это не сработало.

RewriteCond %{HTTP_HOST} ^www\.domain1\.com [NC]
RewriteRule ^/atom\.xml$  http://www.domain1.com/feed/atom [L,R=301]

Я близко?

СпасибоРич

Ответы [ 2 ]

0 голосов
/ 15 октября 2011

Я понял это, но я не уверен, почему именно это работает. Я переместил свой .htaccess, чтобы быть:

RewriteCond %{HTTP_HOST} ^www\.domain1\.com [NC]
RewriteRule ^atom\.xml$  http://www.domain1.com/feed/atom [L,R=301]

Я удалил косую черту перед «атомом» в RewriteRule.

Я думаю, у меня должен быть слэш, так как я пытаюсь перенаправить http://www.domain1.com/atom.xml.

Это в корне домена ...

Ну хорошо. Кто-нибудь может объяснить, почему это работает? Строка, переданная в сопоставление с образцом, не содержит начальную косую черту?

Спасибо, Рич

0 голосов
/ 14 октября 2011

Если вы не будете переписывать для domain2, быстрое решение - создать файл .htaccess внутри его корневой папки и отключить перезапись с помощью RewriteEngine off.

В противном случае вы окажетесь справапуть с RewriteCond, он должен сделать свое дело.Вы пытались добавить $ в конце (RewriteCond %{HTTP_HOST} ^www\.domain1\.com$ [NC]) / любую орфографическую ошибку / www. против нет www.?

...