如何根据引用者URL的关键字重定向到特定页面

时间:2013-05-23 12:01:01

标签: .htaccess mod-rewrite

我的网站正在从很多不同的网站获得流量。我想在我的.htaccess文件中添加一些mod_rewrite规则,根据我从中获取流量的引用网址中的关键字重定向到页面。

我尝试搜索堆栈溢出和google的一些示例,但没有找到任何示例,所以我陷入困境,因为我只能将带有硬编码传入URL的结果重定向到我需要的内容。

它应该是这样的: “如果引荐来源中有关键字'..',则会重定向到此页面。”

更具体地说,如果有一个单词“android”(www.somesite.com/page/android.html或www.androidpolice.com作为示例)引用URL,那么冲浪者需要被重定向到特定页面(www.mysite.com/android.html)

使用上面的一个单词关键字应该比使用“手机”之类的两个或多个单词关键字更容易,因为引用者可能有不同的链接语法,例如:
www.somesite.com/page/mobile%20phone.html
www.somesite.com/mobile-phone/index.html
www.somesite.com/mobile/phone.html
www.somesite.com/mobile+phone/index.html
www.mobile.com/pages/phone.cgi
www.somesite.com/search.php?=mobile_phone.htm

这些都应该重定向到www.mysite.com/mobile-phone.html,因此它变得越来越复杂。

但话又说回来,如果有关键字“mobile”,这些匹配应该重定向到www.mysite.com/mobile.html而不是www.mysite.com/mobile-phone.html,因为这不会干扰。< / p>

如果我在htaccess文件中有数百甚至上千次这样的重写,那么这些重写对服务器没有太大影响也是非常重要的。

我可以使用你的任何帮助。我该怎么做?

EDIT1:
所以,我试图得到一些体面的东西,但我只是结束了以下内容:

RewriteEngine on
RewriteRule (.*)mobile-phone(.*) http://www.mysite.com/mobile-phone/ [L,R=301]

EDIT2:

RewriteEngine on
RewriteCond %{HTTP_REFERER} ^(.*)mobile(.*)
RewriteRule ^$ /mobile.html [L]

它不起作用,我即将放弃尝试找到一种方法:( 如果您知道解决方案,请善意帮助我。

0 个答案:

没有答案