大型自助建站平台/网站推广优化技巧
摘要:本文档实现功能:用户访问a.com,a网站自动跳转到b网站(b.com),b网站nginx服务器判断来路域名http-referer值如果是a.com,就跳转b.com/cs.html到c网站(c.com),否则访问访问b.com主页。
配置如下:
首先a网站配置(a.com):
index.html内容文件如下:
var url='http://b.com';
function goto2(){
if(document.all){
document.write("a");
document.getElementById("goa").click();
}else{
window.location=url;
}
}
goto2();
上行红色代码,解决ie浏览器不支持记录referer值;
其次,b网站配置(b.com)
cs.html文件内容如下:
nginx配置方法有2种,在server下面加入如下内容:
①
if ($http_referer ~* "a.com"){
set $rule_0 1$rule_0;
}
if ($rule_0 = "1"){
rewrite /(.*) /cs.html last;
}
if ($http_referer ~* "b.com"){
set $rule_1 1$rule_1;
}
if ($rule_1 = "1"){
rewrite /(.*) /cs.html last;
}
代码解释:如果来路域名是a.com,就把rule_0赋予值为1,如果rule_0为1,则重写url到cs.html;
②
valid_referers none blocked localhost *.b.com;
if ($invalid_referer){
rewrite /(.*) /taobao.html last;
}
代码解释:除本地host,和*.b.com网站外,其他来路域名,url一律重写到cs.html
语法:valid_referers [none|blocked|server_names]
使用字段:server, location
这个指令在referer头的基础上为 $invalid_referer 变量赋值,其值为0或1。
可以使用这个指令来实现防盗链功能,如果valid_referers列表中没有Referer头的值, $invalid_referer将被设置为1。
参数可以使如下形式:
none 意为不存在的Referer头(表示空的,也就是直接访问,比如直接在浏览器打开一个图片)
blocked 意为根据防火墙伪装Referer头,如:“Referer: XXXXXXX”。
server_names 为一个或多个服务器的列表,0.5.33版本以后可以在名称中使用“*”通配符。