从事互联网开发、运营、设计、运维等工作。偏爱底层开发,服务器运维
全部博文(106)
分类: 网络与安全
2012-01-12 10:01:12
很多用户的程序,官方仅提供了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;“
这样逐条修改就完成了。
mleea2016-12-07 19:55:48
RewriteEngine On
RewriteBase /
RewriteRule ^mspace/archive-htm-(.+)$ mspace/archive.php?$1 [L]
RewriteRule ^mspace/index-htm-(.+)$ mspace/index.php?$1 [L]
RewriteRule ^wap/login-htm-(.+)$ wap/login.php?$1 [L]
RewriteRule ^member/index-htm-(.+)$ member/index.php?$1 [L]
RewriteRule ^index-htm-(.+)$ index.php?$1 [L]
RewriteRule ^archive-htm-(.+)$ archive.php?$1 [L]
RewriteRule ^info-htm-(.+)$ info.php?$1 [L]
求帮我改成Nginx重写规则。
dearyzy2012-01-12 10:04:13
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