【问题标题】:How to redirect a referral link back to index using htaccess如何使用 htaccess 将推荐链接重定向回索引
【发布时间】:2014-06-25 14:40:02
【问题描述】:

我有多个二级域重定向到我的主域。

示例。这将被写入 www.secondarydomain1.com 的 htaccess 中:

RewriteEngine On
RewriteRule ^(.*)$ http://primarydomain.com/?utm_source=redirect&utm_medium=secondarydomain1.com&utm_campaign=301redirect$1 [R=301,L]

www.primarydomain.com的htaccess怎么写,这样可以匹配一个条件:

如果 URL 是 http://primarydomain.com/?utm_source=redirect&utm_medium=secondarydomain1.com&utm_campaign=301redirecthttp://primarydomain.com/?utm_source=redirect&utm_medium=secondarydomain2.com&utm_campaign=301redirect 等, 重定向回primarydomain.com?

【问题讨论】:

    标签: apache .htaccess url mod-rewrite rewrite


    【解决方案1】:

    将此代码放入您的DOCUMENT_ROOT/.htaccess 文件中:

    RewriteEngine On
    
    RewriteCond %{HTTP_HOST} ^(www\.)?primarydomain\.com$ [NC]
    RewriteCond %{QUERY_STRING} ^utm_source=redirect&utm_medium=((secondarydomain1|secondarydomain2)\.com|secondarydomain3\.me)&utm_campaign=301redirect$ [NC]
    RewriteRule ^ /? [L,R=302]
    

    【讨论】:

    • 谢谢,这似乎有效。请问为什么应该是临时重定向(302)而不是301?
    • 另外,如果二级域上的 TLD 不同,该怎么写?例如。 secondarydomain1.com、secondarydomain2.com 和 secondarydomain3.me
    • No 302 不是强制性的。您应该在测试时使用R=302,然后将其更改为R=301,因为浏览器会积极缓存301 URL,从而导致您的测试出现问题。检查secondarydomain3.me的编辑
    • 嗯,有道理。使用 RewriteCond %{HTTP_HOST} ^(www\.)?example\.com$ [NC]RewriteCond %{HTTP_HOST} !^example.com$ [NC] 有什么区别?在 htaccess 中,我从 url 中删除 www 以使其非 www 规范。
    • RewriteCond %{HTTP_HOST} ^(www\.)?example\.com$ 表示如果 HOST 是 www.exaple.comexaple.com 则执行规则。但是RewriteCond %{HTTP_HOST} !^example.com$表示如果HOST不是example.com则执行规则
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-01
    • 1970-01-01
    • 2018-07-15
    • 1970-01-01
    相关资源
    最近更新 更多