来源:网络 | 2013-9-6 | (有3580人读过)
对于Nginx的Rewrite经过网上查阅和测试,发现Nginx的Rewrite规则和Apache的Rewite规则差别不是很大,几乎可以直接使用。比如在Apache中这样写规则 rewrite ^/([0-9]{5}).html$ /viewthread.php?tid=$1 last; 而在Nginx中写成这样写是无法启动的,解决的办法是加上两个双引号: rewrite "^/([0-9]{5}).html$" /viewthread.php?tid=$1 last; 同时将RewriteRule为Rewrite,基本就实现了Nginx的Rewrite规则到Apache的Rewite规则的转换。
Rewrite的Flags last - 基本上都用这个Flag。 break - 中止Rewirte,不在继续匹配 redirect - 返回临时重定向的HTTP状态302 permanent - 返回永久重定向的H -----------------------另一个参考说明----------------------------------- 很多用户的程序,官方仅提供了apache或IIS的伪静态规则,无法加载到nginx服务器上,下面就简单介绍下如何将apache转换成nginx可以使用的规则。 RewriteEngine On RewriteRule ^/([a-z]+)/p_([0-9]+)\.html$ /list\.php\?id=$1 以上为apache的伪静态规则。下面为转换后的nginx规则: rewrite ^/([a-z]+)/p_([0-9]+)\.html$ /list.php?id=$1 last; 请注意:apache后则不能直接使用点和问号,所以将/list\.php\?id=$1中的"\"去掉,即:/list.php?id=$1 然后,将RewriteRule 换为 rewrite,并在在每条规则后加上“last;” (实际用时,别输入双引号) 这样逐条修改就完成了。
|