Nginx服务器Rewrite重写规则大全

Nginx服务器Rewrite重写规则大全


2024年4月5日发(作者:)

Nginx服务器Rewrite重写规则大全

Nginx Rewrite规则相关指令

Nginx Rewrite规则相关指令有if、rewrite、set、return、break等,其中rewrite

是最关键的指令。一个简单的Nginx Rewrite规则语法如下:

rewrite ^/b/(.*).html /?video=$1 break;

如果加上if语句,示例如下:

if (!-f $request_filename)

{

rewrite ^/img/(.*)$ /site/$host/images/$1 last;

}

Nginx与Apache的Rewrite规则实例对比

简单的Nginx和Apache 重写规则区别不大,基本上能够完全兼容。例如:

Apache Rewrite 规则:

RewriteRule ^/(mianshi|xianjing)/$ /zl/?name=$1 [L]

RewriteRule ^/ceshi/$ /zl/ [L]

RewriteRule ^/(mianshi)_([a-zA-Z]+)/$ /zl/?name=$1_$2 [L]

RewriteRule ^/pingce([0-9]*)/$ /zl/?id=$1 [L]

Nginx Rewrite 规则:

rewrite ^/(mianshi|xianjing)/$ /zl/?name=$1 last;

rewrite ^/ceshi/$ /zl/ last;

rewrite ^/(mianshi)_([a-zA-Z]+)/$ /zl/?name=$1_$2 last;

rewrite ^/pingce([0-9]*)/$ /zl/?id=$1 last;

由以上示例可以看出,Apache的Rewrite规则改为Nginx的Rewrite规则,其实很

简单:Apache的RewriteRule指令换成Nginx的rewrite指令,Apache的[L]标记换成

Nginx的last标记,中间的内容不变。

如果Apache的Rewrite规则改为Nginx的Rewrite规则后,使用nginx -t命令检

查发现配置文件有语法错误,那么可以尝试给条件加上引号。例如一下的

Nginx Rewrite规则会报语法错误:

rewrite ^/([0-9]{5}).html$ /?id=$1 last;

加上引号就正确了:

rewrite “^/([0-9]{5}).html$” /?id=$1 last;

Apache与Nginx的Rewrite规则在URL跳转时有细微的区别:


发布者:admin,转转请注明出处:http://www.yc00.com/web/1712312067a2039361.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信