Перенаправление всего трафика на основе имени хоста - PullRequest
1 голос
/ 25 августа 2011

Внешний сервер (я назову его «sub.origin.edu») перенаправляет весь трафик на мою веб-страницу. Я хочу взять весь трафик с этого хоста и перенаправить его на другой сайт (который я назову "http://foo.target.edu/board/").

Мой файл .htaccess:

 RewriteEngine On
 RewriteCond     ${HTTP_HOST}    sub\.origin\.edu [NC]
 RewriteRule     ^(.*)$  http://foo.target.edu/board/ [R=302]

Кажется, это не работает. Я подтвердил (используя PHP), что хост действительно sub.origin.edu, а файл .htaccess находится в правильном каталоге, но это правило просто не вступает в силу. Какие-либо предложения? Спасибо.

(Если я удаляю RewriteCond, происходит перенаправление, поэтому я могу подтвердить, что все, кроме условия перезаписи, работает.)

Ответы [ 3 ]

8 голосов
/ 25 августа 2011

Используйте это:

RewriteEngine On
RewriteCond     %{HTTP_HOST}   sub\.origin\.edu [NC]
RewriteRule     ^(.*)$  http://foo.target.edu/board$1 [R=302]

Вы использовали неправильный символ подстановки ($ вместо %)

1 голос
/ 15 июля 2015

Я нашел этот вопрос, пытаясь завершить пересмотр для конкретных имен хостов.Эта ссылка очень помогла понять, как работают RewriteCond и RewriteRule.

http://httpd.apache.org/docs/2.4/rewrite/intro.html

0 голосов
/ 25 августа 2011

Если sub.origin.edu выполняет перенаправление 3xx, браузер отправит новый запрос на ваш сервер, используя your.server.edu в качестве имени хоста. Так что это правило никогда не будет соответствовать этому. Если это так, то нет простого способа узнать, откуда был перенаправлен запрос.

Если они используют CNAME, у Феми правильный ответ.

...