.htaccess将特定域重定向到特定页面

时间:2017-03-23 22:56:07

标签: php wordpress .htaccess redirect

我希望来自urlnumberone.com和urlnumbertwo.com的任何流量都会重定向到我网站上的几个特定网页。

RewriteEngine on
RewriteCond %{HTTP_REFERER} ^http://(www.\.)?urlnumberone\.com
RewriteRule ^$ /thepath/tomypage/goeshere/ [L]

RewriteEngine on
RewriteCond %{HTTP_REFERER} ^http://(www.\.)?urlnumbertwo\.com
RewriteRule ^$ /thesecond/pathgoeshere/ [L]

现在,这两个网址都只是将用户带到我网站的主页上,而不是转到我想要的网页。我究竟做错了什么?如果它很重要,该网站是一个WordPress网站,WordPress规则在这些重定向下,而不是在代码上方。

1 个答案:

答案 0 :(得分:1)

我认为有两个问题。 RewriteCond行中有一个额外的点,因此括号中的部分当前表示" www(任意字符)(literal-dot)",这将阻止匹配www版本的您需要匹配的域名 - 除非您尝试匹配www6.urlnumberone.comwww3.urlnumberone.com等域名。

所以,我会替换:

RewriteCond %{HTTP_REFERER} ^http://(www.\.)?urlnumberone\.com

使用:

RewriteCond %{HTTP_REFERER} ^http://(www\.)?urlnumberone\.com

接下来,对于RewriteRule行,我会将^$(替换空字符串)更改为.*(替换整个路径),并使用302或301重定向。由于WordPress重写了不是现有文件或目录的每个URL,因此很容易错误地进行重定向循环,因此使用301或302应该有助于防止这种情况。所以我会用:

RewriteRule .* /thepath/tomypage/goeshere/ [R=302,L]

可能有mod_rewrite向导有更好的答案,但这种方法在我的经验中运作良好。