ThinkPHP5是一款十分流行的PHP框架,很多公司都基于TP开发。但是由于Pathinfo()的设置,使得TP5的框架在Nginx下会报404错误。如果你配置在根目录下,则是502,如果你配置在Public下,则是只有首页能显示,其他页面全都是404。
这里,需要调整一下Nginx的conf规则,需要注意的是,调整的是Nginx对于这个网站的规则,而不是调整整个的规则。比如网站目录是abc,域名是,则调整该网站对应的conf文件。有的是面板上自带的网站文件配置,无自带的话需要自己手动调整。
宝塔面板,调整方式如下:
打开网站列表,点击“设置”。弹出配置窗口,点击“网站目录”。
这里,宝塔提供了ThinkPHP5的标准指向配置。但是仅仅调整这个是不好用的。
接下来,打开该网站的“配置文件”,添加一段代码(下面会有描述),即可使用。
代码调整方式如下:蓝色背景部分是添加的代码。其中,“/www/wwwroot/test/public;”是网站所在路径的public目录(即TP5的指向目录)。蓝色部分修改了rewrite规则,随后整个网站就可以恢复正常了。
注意红色部分,是你的域名,所以,你不要全部复制,只需要加入蓝色背景部分即可。
server { listen 80; server_name domain.com; index index.php index.html index.htm default.php default.htm default.html; root /www/wwwroot/public;
#SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则 #error_page 404/404.html; #SSL-END
#ERROR-PAGE-START 错误页配置,可以注释、删除或修改 error_page 404 /404.html; error_page 502 /502.html; #ERROR-PAGE-END
#PHP-INFO-START PHP引用配置,可以注释或修改 include enable-php-55.conf; #PHP-INFO-END
#REWRITE-START URL重写规则引用,修改后将导致面板设置的伪静态规则失效 include /www/server/panel/vhost/domin.conf #REWRITE-END
#禁止访问的文件或目录 location ~ ^/(.|.htaccess|.git|.svn|.project|LICENSE|README.md) { return 404; }
location ~ .*.(gif|jpg|jpeg|png|bmp|swf)$ { expires 30d; access_log off; }
location / { if (!-e $request_filename) { rewrite ^(.*)$ /$1 last; break; } }
location ~ .*.(js|css)?$ { expires 12h; access_log off; } access_log /www/wwwlogs/domain.log; error_log /www/wwwlogs/domain.error.log; }