Rewrite规则可以实现对url的重写,以及重定向
URL访问跳转,支持开发设计,如页面跳转,兼容性支持,展示效果等 SEO优化 维护:后台维护、流量转发等 安全
注:nginx官方文档: http://nginx.org/en/docs/http/ngx_http_rewrite_module.html
Syntax: rewrite regex replacement flag; Default:——
Context:server、location、if
rewrite语法
server {
rewrite {规则} {定向路径} {重写类型} ;
}
1、规则:可以是字符串或者正则来表示想匹配的目标url
2、定向路径:表示匹配到规则后要定向的路径,如果规则里有正则,则可以使用$index来表示正则里的捕获分组
3、重写类型:
last :相当于Apache里德(L)标记,表示完成rewrite,浏览器地址栏URL地址不变。停止rewrite检测【如果没有匹配到,会继续向下匹配】 break ;本条规则匹配完成后,终止匹配,不再匹配后面的规则,浏览器地址栏URL地址不变。停止rewrite检测【如果没有匹配到,则不再向下匹配,直接返回结果404】
redirect :返回302临时重定向,浏览器地址会显示跳转后的URL地址。
permanent :返回301永久重定向,浏览器地址栏会显示跳转后的URL地址permanent:返回301永久重定向,浏览器地址栏会显示跳转后的URL地址
简单实例
rewrite ^(.*)$ /pages/maintain.html break;
解释说明:
会把所有的请求都重定向到 /pages/maintain.html 页面。
last和break的区别:
server {
location / {
rewrite /last/ /q.html last;
rewrite /break/ /q.html break;
}
location = /q.html {
return 400;
}
}
访问/last/时重写到/q.html,然后使用新的uri再匹配,正好匹配到locatoin = /q.html然后返回了400;
访问/break时重写到/q.html,由于返回了break,则直接停止了;
server {
rewrite /last.html /index.html last;
# 访问 /last.html 的时候,页面内容重写到 /index.html 中
rewrite /break.html /index.html break;
# 访问 /break.html 的时候,页面内容重写到 /index.html 中,并停止后续的匹配
rewrite /redirect.html /index.html redirect;
# 访问 /redirect.html 的时候,页面直接302定向到 /index.html中
rewrite /permanent.html /index.html permanent;
# 访问 /permanent.html 的时候,页面直接301定向到 /index.html中
|
|
讲道义的小熊猫 · C# ElementAt() - CSDN文库 1 年前 |