应用场景:
使用方式:
rewrite ^(.*)$ /pages/maintain.html break;
字段 | 作用 |
---|---|
last | 停止 rewrite 检测 |
break | 停止 rewrite 检测 |
redirect | 返回 302 临时重定向,地址栏会显示跳转后的地址 |
permanent | 返回 301 永久重定向,地址栏会显示跳转后的地址(浏览器下次直接访问重定向后的地址) |
root /opt/app/code;location ~ ^/break {rewrite ^/break /test/ break;}location ~ ^/last {rewrite ^/last /test/ last;}location /test/ {default_type application/json;return 200 '{"status": "success"}'}location ~ ^/imooc {#rewrite ^/imooc http://www.imooc.com/ permanent;#rewrite ^/imooc http://www.imooc.com/ redirect;}
规则优先级:
# 将 domain.com 重定向到 www.domain.comserver {listen 80;server_name domain.com;rewrite ^/(.*) http://www.domain.com/$1 permanent;}server {listen 80;server_name www.domain.com;location / {root html/brain;index index.html index.htm;}access.log logs/brain.log.main gzip buffer=128k flush=5s;error_page 500 502 503 504 /50x.html;location = /50x.html {root html;}}
Nginx 可以通过内置变量 $http_user_agent
,获取到请求客户端的 userAgent
,从而知道用户处于移动端还是 PC 端,进而控制重定向到 H5 站还是 PC 站。
location / {# 当 userAgent 中检测到移动端设备if ($http_user_agent ~* '(Android|webOS|iPhone|iPod|BlackBerry)') {set $mobile_request '1';}# 则重定向至if ($mobile_request = '1') {rewrite ^.+ http://h5.example.com;}}