有一个外部网站将其所有流量重定向到我们网站上的网页。我们无法控制此重定向,并且内容URL以下列方式进行镜像。
当用户访问:
www.externaldomain.com/1234
他们被重定向到:
www.ourdomain.com/1234
有时可能是一个不存在的页面,因此会产生404错误。如何重定向从externaldomain.com
到ourdomain.com
主页的所有流量,以确保我们不会失去潜在用户?
我知道HTTP_REFERER
正在发挥作用,但我无法将其设置为正常运行。
答案 0 :(得分:0)
请参阅this answer
你必须使用apache的modrewrite:
RewriteEngine On
RewriteCond%{HTTP_REFERER}!^ mydomain.co.uk $ [N]
答案 1 :(得分:0)
这里要问的最重要的问题是,您是希望将所有流量重定向到您的主页还是您提到的“有时”不存在的特定页面(404) - 这两个都在此处得到解答。
将所有引荐的流量从特定外部域重定向到主页
如果您需要重定向来自特定域(引荐来源)的所有流量,您可以执行以下操作:
RewriteEngine On
RewriteCond %{HTTP_REFERER} ^http://externaldomain\.com/ [NC]
RewriteRule ^(.*) /index.php [R=301,L]
仅将404错误流量重定向到来自特定域的主页
如果您想在此基础上重定向,请使用:
RewriteEngine On
RewriteCond %{HTTP_REFERER} ^http://externaldomain\.com/ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*) /index.php [R=301,L]
关于上面提到的apache标志:
[NC] = No case (or case insensitive)
[L] = If the rule matches, no further rules will be processed.
[R=301] = Apply a 301 redirect*
您可以在Apache标志here上找到更详细/详细的信息。
*针对这些规则的搜索引擎优化
为什么301重定向? - 301重定向是永久重定向,它将超过90%以上的链接汁(或潜在的排名能力)传递到重定向页面。 301指的是此类重定向的HTTP状态代码。在大多数情况下,301重定向是在SEO方面在网站上实现重定向的最佳方法。就收益而言,有关如何利用和处理不同类型的重定向的大量信息here。