根据主机名重定向所有流量

时间:2011-08-25 03:50:44

标签: apache mod-rewrite redirect host

外部服务器(我将其称为“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,重定向就会发生,所以我可以确认除重写条件之外的所有内容都有效。)

2 个答案:

答案 0 :(得分:7)

使用此:

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

您使用了错误的替代字符($而不是%

答案 1 :(得分:0)

如果sub.origin.edu正在进行3xx重定向,则浏览器将使用your.server.edu作为主机名向您的服务器发出新请求。所以这条规则永远不会与之匹敌。如果是这种情况,就没有简单的方法来判断请求的重定向位置。

如果他们使用CNAME,Femi会有正确答案。