谈谈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后面是有个空格的!




注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com