让nginx支持htaccess配置

以前用apache用习惯了,很少涉及到nginx的配置。之前在apache编写的htaccess规则转移到nginx服务器一下子运作不起来了。经过搜索和尝试,发现这个问题可以解决很好,记录一下操作日志,方便日后快速查阅记录。

1.准备好apache的.htaccess规则,即将规则转换为nginx支持的规则:

这里有个在线转换工具不错:【传送门

 #apache 规则启用
 #RewriteEngine On
 #RewriteCond %{REQUEST_URI} !^.*(\.css|\.js|\.gif|\.png|\.jpg|\.jpeg|\.bmp|\.woff|\.ttf|\iconfont)$
 #RewriteCond %{REQUEST_FILENAME} !-d
 #RewriteCond %{REQUEST_FILENAME} !-f
 #RewriteRule ^(.*)$ index.php [QSA,PT,L]


#nginx 配置启用
if ($uri !~ "^.*(\.css|\.js|\.gif|\.png|\.jpg|\.jpeg|\.bmp|\.woff|\.ttf|\iconfont)$"){
 set $rule_0 1$rule_0;
}
if (!-d $request_filename){
 set $rule_0 2$rule_0;
}
if (!-f $request_filename){
 set $rule_0 3$rule_0;
}
if ($rule_0 = "321"){
rewrite ^/(.*)$ /index.php last;
}


2.把htaccess上传到网站根目录【也可以其他位置,只是方便修改】

3.修改nginx的conf配置文件,引入htaccess规则

server {
        listen  80;#监听端口,默认就好
        server_name blog.alipay168.cn;
        index index.php index.html;
        root    /网站目录/;
        location / {

        }
        location ~ \.php$ {
         #其他配置
          }
        include /网站目录中的规则路径/.htaccess;#位置可以自定义
}



4.重启nginx服务,检查效果

service nginx restart


评论/留言