/ 中存储网

Nginx服务器中针对访问来源设置跳转

2014-04-07 13:40:01 来源:ITJS.CN
公司在google上投广告,需要做一些很简单的站去google上投广告,当用户在google上点击那些很简单的网站的时候,就会跳转到真实的网站。但是,如果用户直接在浏览器输入域名,并访问的话,那样就不跳转,这样的情况是怎么实现的呢,今天我在这分别解释一下nginx和apache的实现方法。

nginx:

例:现在google首页点击广告  www.abc.com   跳转到www.baidu.com,但是直接在浏览器输入www.abc.com,还是www.abc.com

在nginx.conf的虚拟目录配置里加入:

valid_referers none blocked localhost *.abc.com abc.com;

             if ($invalid_referer){

rewrite  ^/(.*)  http://www.baidu.com/? permanent;

break;

}

上面解释一下,是判断来源网站,但是排除他自己,除了他自己以外,其他网站来源的,一律跳转到www.baidu.com.

如下图

apache 实现方法:

还是上面的例子,通过google点击abc.com 跳转到www.baidu.com

在站点主目录下创建 .htaccess文件,并打开apache rewrite选项。在.htaccess文件里加入以下代码:

Options +FollowSymlinks

RewriteEngine on

rewritecond %{QUERY_STRING} id=1  [nc]

RewriteCond %{HTTP_REFERER} google.com [nc] 

rewriterule ^index.php$  http://www.baidu.com.net/? [r=301,nc]

解释一下,id=1 是访问的页面,例如 www.abc.com/index.php?id=1 这样的格式,如果index.php后面不是那个的话,可以加入其他的,或者直接根跳。

好了,原理就是这样。