现在的位置: 首页 > 综合 > 正文

谈谈apache的htaccess伪静态规则转到nginx

2013年04月14日 ⁄ 综合 ⁄ 共 769字 ⁄ 字号 评论关闭

上文讲了htaccess转iis的httpd.ini伪静态规则

下面再谈谈如何把apache的htaccess规则转到nginx下!

简单举个例子,如apache下的这样一条伪静态规则

RewriteRule  ^/([0-9]+)/?$ index.php?s=content/index/loupan&t=zhuye&catid=14&id=$1 [L]
RewriteRule  ^/index.html?$ index.php?s=content/index/loupan&t=zhuye&catid=14&id=$1 [L]

转换到nginx下后为下面这样,其实改动还是很小的!

location / {
rewrite  ^/([0-9]+)/?$ /index.php?s=content/index/loupan&t=zhuye&catid=14&id=$1 last;
rewrite  ^/index\.html$ /index.php?s=content/index/loupan&t=zhuye&catid=14&id=$1 last;
}

但是apache下的RewriteCond写法,在nginx下是不认的,这个改动比较大!

RewriteCond  %{QUERY_STRING}  keyword=(.*)
RewriteRule  ^/list.html(.*)  index.php?s=content/index/lists&catid=14&keyword=%1 [L]

if ($query_string ~ ^keyword=(.*)$) {
   set $id_tmp $1;
   rewrite "^/list.html$"  index.php?s=content/index/lists&catid=14&keyword=$id_tmp permanent;
}

一定要注意上面if后面是有个空格的!

抱歉!评论已关闭.