Nginx | 配置rewrite或return方法实现页面强制跳转
一、跳转规则参考
rewrite方法
配置语法:rewrite [正则表达式 替换前的URL] [替换后的URL] [标识];
作用域:http域/server域/location域/if判断里,优先级(http域 > server域 > location域)
标识说明
标识 | 类型作用 |
---|---|
last | 停止rewrite的检测 ,返回200 |
break | 停止rewrite的检测,返回404 |
redirect | 返回302临时重定向, 地址栏会显示跳转后的地址,并再次请求,返回200 |
permanent | 返回301永久重定向, 地址栏会显示跳转后的地址(后面再次访问也会定向至该地址, 除非清理缓存) ,返回200 |
示例1-不同站点的跳转
将connect.test.com 301跳转到www.test.com/connect/
if ($host = "connect.test.com"){
rewrite ^/(.*)$ http://www.test.com/connect/$1 permanent;
}
将www.test.com/connect 跳转到connect.test.com
rewrite ^/connect$ http://connect.test.com permanent;
示例2-站内跳转
将 www.test.com/category/123.html 跳转为 category/?cd=123
rewrite "/category/(.*).html$" /category/?cd=$1 last;
return方法
示例1-http跳转https
如果站点监听80 443在同一个server域配置文件中,http跳转到https,在server域加入,
if ($scheme = http) {
return 301 https://$host$request_uri;
}
如果80 443监听配置在不同的server域,80监听的server域的location / {}段中加入,
return 301 https://$host$request_uri;
Enjoy Nginx