仅基于引用URL的一部分进行重定向

时间:2015-06-21 13:23:27

标签: php .htaccess redirect

我正在与一个拥有许多子域名的网站的客户合作,这些子网域代表了他的锁匠业务所涉及的不同领域。他从目录网站获取大量流量,并希望仅将其域名用作这些网站上的链接。当有人点击它时,他希望根据引用网址中的关键字重定向它们。

例如,引用的Yell URL可以是

yell.com/ucs/UcsSearchAction.do?keywords=locksmith&location=Watford%2C+Hertfordshire&scrambleSeed=1311994593

客户希望htaccess或其类似内容从该网址中选择关键字'Watford',并相应地重定向到 watford.hisbusiness.com

这不是我以前做过的事情,我感到很困惑。研究发现没有线索。

2 个答案:

答案 0 :(得分:0)

您可以查看HTTP_REFERER以获取引荐网址中的信息。

RewriteEngine on

RewriteCond %{HTTP_REFERER} yell\.com/.*\?.*\&location\=(\w+)\%2C\+(\w+)
RewriteRule ^$ http://${lower:%1}.hisbusiness.com/ [R=302,L]

${lower:$1}用于使 Watford 小写。为此,您需要将以下内容添加到httpd.conf或虚拟主机配置文件中:

RewriteMap lower int:tolower

注意:上面的规则仅适用于域根(hisbusiness.com) - 也就是说对hisbusiness.com/something的请求不会触发重定向。如果您还想检查URI,请改用以下规则:

RewriteRule ^(.*)$ http://${lower:%1}.hisbusiness.com/$1 [R=302,L]

要使浏览器/搜索引擎永久重定向并进行缓存,请将302更改为301

答案 1 :(得分:0)

使用所需条件在PHP上使用Header

if(condition 1){
header("Location: http://mywebsite1.com");
}

if(condition 2){
header("Location: http://mywebsite2.com");
}

else{
header("Location: http://mywebsite3.com");
}

您可以在if条件中使用[stristr][1]