全球主机交流论坛

标题: 请高手帮忙写个nginx的伪静态规则 [打印本页]

作者: clcavril    时间: 2010-12-9 02:58
标题: 请高手帮忙写个nginx的伪静态规则
RewriteEngine On
RewriteCond %{HTTP_HOST} ^xxxx.com [NC]
RewriteRule ^(.*)$ http://www.xxxx.com/$1 [L,R=301]
RewriteCond %{REQUEST_URI} !\.[a-zA-Z]{2,4}$ [OR]
RewriteCond %{REQUEST_URI} \.(html)$ [NC]
RewriteCond %{REQUEST_URI} !^/admin.* [NC]
RewriteCond %{REQUEST_URI} !^/livechat.* [NC]
RewriteCond %{REQUEST_URI} !^/blog.* [NC]
RewriteCond %{REQUEST_URI} !^/editors.* [NC]
RewriteCond %{REQUEST_URI} !/cpanel.* [NC]
RewriteCond %{REQUEST_URI} !/frontend.* [NC]
RewriteRule (.*) index.php?%{QUERY_STRING} [L]

这是apache下的,谢谢!!
作者: clcavril    时间: 2010-12-9 03:07
if ($http_host ~* "^xx.com"){
        set $rule_0 1$rule_0;
}
if ($rule_0 = "1"){
        rewrite ^/(.*)$ http://www.xx.com/$1 permanent;
        break;
}
if ($uri !~ "\.[a-zA-Z]{2,4}$"){
        set $rule_1 1;
}
if ($uri ~* "\.(html)$"){
        set $rule_1 1;
}
if ($uri !~* "^/cuteadmin.*"){
        set $rule_1 1;
}
if ($uri !~* "^/livechat.*"){
        set $rule_1 1;
}
if ($uri !~* "^/dddd.*"){
        set $rule_1 1;
}
if ($uri !~* "^/blog.*"){
        set $rule_1 1;
}
if ($uri !~* "^/editors.*"){
        set $rule_1 1;
}
if ($uri !~* "/cpanel.*"){
        set $rule_1 1;
}
if ($uri !~* "/frontend.*"){
        set $rule_1 1;
}
if ($rule_1 = "1"){
        rewrite /(.*) /index.php?$args last;
}


http://www.anilcetin.com/convert-apache-htaccess-to-nginx/     这个地址很强大,自动转换
作者: 我是小白    时间: 2010-12-9 06:28
做个记号
作者: clcavril    时间: 2010-12-9 14:43
刚发现有点问题
之前要求不重写的那些文件和目录貌似还是被重写了
作者: clcavril    时间: 2010-12-9 16:34
研究好半天
其实一行就够了
不让他重写真实文件和真实目录
location / {
if ($http_host ~* "^xxx.com"){
rewrite ^/(.*)$ http://www.xxx.com/$1 permanent;
break;
}
if (!-e $request_filename){
rewrite /(.*) /index.php?$args last;
}       
}
之前apache的rewrite规则是单独限制某一类文件和某一个文件夹
nginx中不知道怎么实现,只好写成上面这样了,使用起来没问题,安全性上差一点

[ 本帖最后由 clcavril 于 2010-12-9 16:36 编辑 ]
作者: 狼魄    时间: 2010-12-9 16:35
俺最近被rewrite搞疯了啊!!




欢迎光临 全球主机交流论坛 (https://hostloc.9hanju.com/) Powered by Discuz! X3.4