Проблема перезаписи URL в IIS MOD REWRITE - PullRequest
0 голосов
/ 17 июля 2009

У меня есть код ниже в mod-rewrite.txt

RewriteEngine On
RewriteRule /\.htaccess$ - [F]

RewriteCond %{HTTP_HOST} !www\.espireinfo\.com$
RewriteRule ^(.*)$ http://www\.espireinfo\.com$1 [R=301,L]

RewriteRule ^/schools/index.aspx$   /schools/english-language.aspx [R=301,L]
RewriteRule ^/about/Contact.aspx$   /about/contact.aspx [R=301,L]

Как видите, для перезаписи используется домен www.espireinfo.com . Я хочу, чтобы еще один домен www.rai.com с приведенной ниже конфигурацией был записан в тот же файл перезаписи мода.

RewriteCond %{HTTP_HOST} !www\.rai\.com$
RewriteRule ^(.*)$ http://www\.rai\.com$1 [R=301,L]

RewriteRule ^/schools/index.aspx$   /schools/eng-lang.aspx [R=301,L]
RewriteRule ^/about/Contact.aspx$   /about/contactdetails.aspx [R=301,L]

Итак, мой полный файл mod-rewrite.txt будет показан ниже:

RewriteEngine On
RewriteRule /\.htaccess$ - [F]

RewriteCond %{HTTP_HOST} !www\.espireinfo\.com$
RewriteRule ^(.*)$ http://www\.espireinfo\.com$1 [R=301,L]

RewriteRule ^/schools/index.aspx$   /schools/english-language.aspx [R=301,L]
RewriteRule ^/about/Contact.aspx$   /about/contact.aspx [R=301,L]

RewriteCond %{HTTP_HOST} !www\.rai\.com$
RewriteRule ^(.*)$ http://www\.rai\.com$1 [R=301,L]

RewriteRule ^/schools/index.aspx$   /schools/eng-lang.aspx [R=301,L]
RewriteRule ^/about/Contact.aspx$   /about/contactdetails.aspx [R=301,L]

Я пытался это сделать, но он отвечает только на первый домен www.espireinfo.com .

Возможно ли управление двумя доменами с одинаковым rewriterule в одном файле mod-rewrite.txt.

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

1 Ответ

0 голосов
/ 17 июля 2009

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

Вы должны выбрать один из них по умолчанию для перенаправления 301. оставьте только один из этих разделов.

Затем добавьте правильное условие на страницу перезаписи. Таким образом, для espireinfo есть значение

RewriteEngine On
RewriteRule /\.htaccess$ - [F]

# espireinfo is the default server
RewriteCond %{HTTP_HOST} !www\.espireinfo\.com$
RewriteCond %{HTTP_HOST} !www\.rai\.com$
RewriteRule ^(.*)$ http://www\.espireinfo\.com$1 [R=301,L]

# espireinfo.com rewrites
RewriteCond %{HTTP_HOST} www\.espireinfo\.com$
RewriteRule ^/schools/index.aspx$   /schools/english-language.aspx [R=301,L]
RewriteCond %{HTTP_HOST} www\.espireinfo\.com$
RewriteRule ^/about/Contact.aspx$   /about/contact.aspx [R=301,L]

# rai.com rewrites
RewriteRule ^/schools/index.aspx$   /schools/eng-lang.aspx [R=301,L]
RewriteRule ^/about/Contact.aspx$   /about/contactdetails.aspx [R=301,L]

Это так, если я не ошибаюсь в переименовании вашего доменного имени, то есть если вы на самом деле пытаетесь форсировать префикс www.

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