版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/m0_38004619/article/details/79096629
nginx的rewrite规则
一、rewrite的介绍
nginx的rewrite规则就是使用正则匹配请求的url,然后根据定义的规则进行重写和改变,需ngx_http_rewrite_module模块来支持url重写功能,该模块是标准模块,默认已经安装。
(通过改写访问的url想让用户访问哪里就访问哪里)
nginx的rewrite规则就是使用正则匹配请求的url,然后根据定义的规则进行重写和改变,需ngx_http_rewrite_module模块来支持url重写功能,该模块是标准模块,默认已经安装。
(通过改写访问的url想让用户访问哪里就访问哪里)
二、使用场景
1.可以调整用户浏览的URL,看起来更规范,合乎开发及产品人员的需求。
2.为了让搜索引擎搜录网站内容及用户体验更好,企业会将动态URL地址伪装成静态地址提供服务。
3.网址换新域名后,让旧的访问跳转到新的域名上。例如,访问京东的360buy.com会跳转到jd.com。
4.根据特殊变量、目录、客户端的信息进行URL调整等。
2.为了让搜索引擎搜录网站内容及用户体验更好,企业会将动态URL地址伪装成静态地址提供服务。
3.网址换新域名后,让旧的访问跳转到新的域名上。例如,访问京东的360buy.com会跳转到jd.com。
4.根据特殊变量、目录、客户端的信息进行URL调整等。
三、配置于法
rewrite <regex> <replacement> [flag];
关键字 正则 替代内容 flag标记
位置:server,location,if
关键字:其中关键字error_log不能改变。
正则:perl兼容正则表达式语句进行规则匹配。
替代内容:将正则匹配的内容替换成replacement。
替代内容:将正则匹配的内容替换成replacement。
flag标记:rewrite支持的flag标记。
flag标记说明:
last #本条规则匹配完成后,继续向下匹配新的location URI规则
break #本条规则匹配完成即终止,不再匹配后面的任何规则
redirect #返回302临时重定向,浏览器地址会显示跳转后的URL地址
permanent #返回301永久重定向,浏览器地址栏会显示跳转后的URL地址
flag标记说明:
last #本条规则匹配完成后,继续向下匹配新的location URI规则
break #本条规则匹配完成即终止,不再匹配后面的任何规则
redirect #返回302临时重定向,浏览器地址会显示跳转后的URL地址
permanent #返回301永久重定向,浏览器地址栏会显示跳转后的URL地址
四、使用实例
server {
listen 80;
server_name abc.com;
rewrite ^/(.*) http://www.abc.com/$1 permanent;
}
server {
listen 80;
server_name www.abc.com;
location / {
root /data/www/www;
index index.html index.htm;
}
error_log logs/error_www.abc.com.log error;
access_log logs/access_www.abc.com.log main;
}