将apache重写为nginx

时间:2010-09-13 16:03:32

标签: nginx rewrite

这是我第一次使用nginx重写, 谁能帮我把这些规则转换成nginx sintax?

RewriteRule (economics|sport|gossip|aboutus)+$ index.php?section=$1
RewriteRule (register)+$ $1.php?%{QUERY_STRING}
RewriteCond %{QUERY_STRING} ^p
RewriteRule (economics|sport|gossip)/+$ articles.php?section=$1&%{QUERY_STRING}

谢谢

2 个答案:

答案 0 :(得分:1)

rewrite (economics|sport|gossip|aboutus)$ /index.php?section=$1 last;

我不确定+正在使用原始正则表达式的目的是什么。这四个字可以不止一个吗?您是否尝试仅匹配其中一个单词(即问题是“或”部分)?为什么rewrite directive“打破”而不是“最后”?

rewrite (register)+$ $1.php last;

同样,我不确定你在这个正则表达式中用+来完成什么。你的意思是.+(即“一个或多个角色”)?如果是这样,$是多余的。正如你所写,它意味着“一个或多个重复的字符串'寄存器'结束请求字符串。”

答案 1 :(得分:0)

nginx中的重写语法并不完全不同。

rewrite  ^/(.*)$  http://www.just1word.com/$1  permanent;

这是我从配置文件中获取的一个。也许它会指出你正确的方向。