以前用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