投稿 评论 顶部

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

佚名 网络安全

上文讲了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后面是有个空格的!