【问题标题】:.htaccess redirect specific domain to specific page.htaccess 将特定域重定向到特定页面
【发布时间】:2017-08-16 17:46:50
【问题描述】:

我希望来自 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]

现在,这两个 URL 都只是将用户带到我网站上的主页,而不是转到我想要的页面。我究竟做错了什么?万一这很重要,该站点是一个 WordPress 站点,并且 WordPress 规则在这些重定向之下,而不是在代码中它们之上。

【问题讨论】:

    标签: php wordpress .htaccess redirect


    【解决方案1】:

    我认为有两个问题。 RewriteCond 行中有一个额外的点,因此括号中的部分当前表示“www(any-character)(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 向导有更好的答案,但根据我的经验,这种方法效果很好。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-12-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-06
      • 2019-01-15
      • 1970-01-01
      相关资源
      最近更新 更多