Nginx rewrite
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nginx rewrite相关的知识,希望对你有一定的参考价值。
nginx rewrite 实现 URL 地址重写,即域名重定向,在安装 nginx 的时候需要安装 PCRE 来支持 rewrite 功能。
语法:rewrite regex replacement [flag] //表示如果匹配到正则regex,就跳转到replacement,rewrite是固定关键字,flag是标记
正则:
\ :用于转义字符,如 \n 表示匹配换行 、\$ 表示匹配 $
^ :匹配起始位置
$ :匹配结束位置
* :匹配前面的字符零次或多次,如 ab* 可以匹配 a 或 abbb
+ :匹配前面的字符一次或多次,如 ab+ 可以匹配 ab 或 abbb
? :匹配前面的字符零次或一次,如 ab? 可以匹配 a 或 ab
() :匹配括号内的模式,并可以在后面获取对应的匹配
flag 标记:
last :重定向之后继续向下匹配新的 location URI 规则,且浏览器地址栏不变
break :重定向之后不再匹配后面的任何规则,且浏览器地址栏不变
redirect :返回 302 临时重定向,浏览器地址栏会显示跳转后的 URI 地址
permanent :返回 301 永久重定向,浏览器地址栏会显示跳转后的 URI 地址
配置实例:
server { listen 80; server_name www.aaa.com www.bbb.com;
if {$host != ‘www.bbb.com‘}
{
rewrite ^/(.*)$ http://www.aaa.com/$1 permanent; //表示当用户访问www.bbb.com/下的任意内容时跳转到www.aaa.com/下的任意内容 }
location / { root html/www; index index.html index.htm; }
说明:
rewrite 是固定关键字
^/(.*) 表示匹配所有
http://www.aaa.com/ 是跳转的域名
$1 是前面正则表达式括号里的内容
permanent 表示永久 301 重定向标记,即跳转到后面的 http://www.aaa.com/$1 地址上
以上是关于Nginx rewrite的主要内容,如果未能解决你的问题,请参考以下文章
apache与nginx在移动终端访问是的rewrite配置