前段时间写了一篇关于给博客安装证书加密访问的文章,在站长平台,百度说支持https,一个月后发现网站的流量排名跌成了狗,为了逼格保留这个https,又为了不和百度做对,查阅相关资料后选择用user_agent来解决,nginx本身就能判断UA,以下代码供大家参考,添加到nginxRewrite配置文件里即可,域名换成自己的。
具体的代码如下(复制吧-骚年):
server { listen 80; server_name mrxn.net mrxn.net; set $flag 0; if ($host != 'mrxn.net') { set $flag 1; } if ($server_port = 80) { set $flag 1; } if ($scheme = http) { set $flag 1; } if ($http_user_agent ~* (baiduspider|soso|sogou|yahoo|sohu-search|yodao|YoudaoBot|robozilla|msnbot|MJ12bot|NHN|Twiceler)){ set $flag 2; } if ($flag = 1){ rewrite ^/(.*)$ https://mrxn.net/$1 redirect; } error_page 497 https://mrxn.net$request_uri; }
这段规则具体作用是:将国内部分对https支持不好的搜索引擎蜘蛛定向到http页面,将普通用户和其他搜索引擎定向到https页面(谷歌更喜欢https站点)。
相关文章:
一段代码让nginx实现网站资源防盗链
nginx配置location总结及rewrite规则写法
nginx配置ssl加密(单双向认证、部分https)
NginxRewrite规则判断普通用户与搜索引擎爬虫(UA)实现https跳转
SSL/TLS原理详解
OpenSSL 与 SSL 数字证书概念贴
基于OpenSSL自建CA和颁发SSL证书
原文属于博友创造:https://tmy123.com/user-agent.html