Chinaunix首页 | 论坛 | 博客
  • 博客访问: 508864
  • 博文数量: 106
  • 博客积分: 1707
  • 博客等级: 上尉
  • 技术积分: 1109
  • 用 户 组: 普通用户
  • 注册时间: 2009-11-16 11:24
个人简介

从事互联网开发、运营、设计、运维等工作。偏爱底层开发,服务器运维

文章分类

全部博文(106)

文章存档

2016年(3)

2015年(6)

2014年(5)

2013年(11)

2012年(8)

2011年(8)

2010年(34)

2009年(31)

分类: 网络与安全

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;“

  这样逐条修改就完成了。

阅读(8385) | 评论(3) | 转发(1) |
0

上一篇:Nginx源码结构分析

下一篇:nginx rewrite规则

给主人留下些什么吧!~~

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重写规则。

最乖啦啦2012-01-12 22:39:47

网上以前一直流传的Rewrite都是有误的

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