2

有一个外部网站将其所有流量重定向到我们网站上的网页。我们无法控制此重定向,内容 URL 以以下方式镜像。

当用户访问:

www.externaldomain.com/1234 

他们被重定向到:

www.ourdomain.com/1234 

有时可能是不存在的页面,因此会导致 404 错误。我怎样才能将所有流量从主页重新定向,externaldomain.comourdomain.com确保我们不会失去潜在用户?

我知道HTTP_REFERER会起作用,但我无法设置它以使其正常运行。

4

2 回答 2

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 标志的更多详细/详细信息。


*这些规则的搜索引擎优化

为什么要进行 301 重定向?- 301 重定向是一种永久重定向,它将超过 90% 以上的链接汁(或潜在排名能力)传递到重定向页面。301 是指此类重定向的 HTTP 状态代码。在大多数情况下,就 SEO 而言,301 重定向是在网站上实现重定向的最佳方法。就利益而言,这里有大量关于如何利用和处理不同类型重定向的信息。

于 2013-06-15T02:47:03.963 回答
0

看到这个答案

您必须使用 apache 的 modrewrite:

重写引擎开启

RewriteCond %{HTTP_REFERER} !^mydomain.co.uk$ [N]

于 2013-06-14T16:13:36.943 回答