sudone.com 服务器系统架构分析日志


apache rewrite转nginx经验--对大括号的支持

[2010-04-13 11:11:16]
在nginx中这样写规则

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

是无法启动的,解决的办法是加上两个双引号

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

这样就OK了,应该可以说是完全兼容apache的语法的,只需要改下RewriteRule为Rewrite,后面的一般可以这样对应改

[R] -> redirect;
[P] -> last;
[R,L] -> redirect;
[P,L] -> last;
[PT,L] -> last;

nginx rewrite中支持4种类型的转向:

跳转型的
redirect:302跳转到rewrite后的地址
permanent:301永久定向到rewrite后的地址,对搜索引擎更友好

代理型的
last:重新将rewrite后的地址在server标签中执行
break:将rewrite后的地址在当前location标签中执行

nginx的last和break的区别可以参考:
http://www.sudone.com/nginx/nginx_rewrite_last_break.html

站名:sudone.com; 站长:Ayou; 服务器:ubuntu+nginx+squid+php
老细网