前段时间写了一篇关于给博客安装证书加密访问的文章,在站长平台,百度说支持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

