http 跳转 https
1 2 3 4 5 6 7 8 9 10
| server { if ($host = www.ljj.pub) { return 301 https://$host$request_uri; } # managed by Certbot } server { listen 443 ssl http2 default_server; listen [::]:443 ssl http2 default_server; server_name www.ljj.pub; }
|
第一个 server 配置是 certbot 自动生成的,目的是将所有 http://www.ljj.pub 的请求转发到 https://www.ljj.pub。注意第二个 server 配置里面不可以有 listen 80; 否则会覆盖上面那个,导致转发不执行。
移动和PC端跳转不同页面
1 2 3 4 5
| server { if ($http_user_agent ~* 'ipad|iphone|android') { return 301 https://m.ljj.pub; } }
|
这里的匹配符号有
- = 严格匹配
- ~ 区分大小写匹配(可用正则)
- ~* 不区分大小写匹配(可用正则)
- !~ 区分大小写不匹配
- !~* 不区分大小写不匹配
- ^~ 如果把这个前缀用于一个常规字符串,那么告诉nginx 如果路径匹配那么不测试正则表达式
参考:
nginx匹配
在线生成配置的工具