微信
咨询热线:15367488089(微信同号)
咨询邮箱:207023651@qq.com
您的位置: 首页 > 新闻资讯> ThinkPHP 5.0框架在nginx环境下路由报404错误解决方法 亲测可用
ThinkPHP 5.0框架在nginx环境下路由报404错误解决方法 亲测可用
发表日期:2019-06-03    文章编辑:ThinkECM    浏览次数:506

前段时间给客户写了个TP5框架的后台,主要是API调用,上传到客户服务器后发现首页可用,但所有内页报404错误,网上一搜发现天多一样的问题,但找了很多都是不可用的,而且都是过时的,但最终还是自己试出来了,今天贴下,亲测可用。


 


宝塔面板windows-5.4.0+Nginx-1.12配置(Linux请使用宝塔面板,可以直接打开配置文件,然后根据这个修改,一样的)


请完全按此顺序执行,不然我也不清楚有没有其他问题

1、通过宝塔线安装好Nginx与其它环境

2、通过宝塔面板 添加 网站 (这一步很重要,宝塔会自动配置一些文件,可以省去很多事情)

3、打开宝塔目录应该是(我的宝塔是装个在D盘,路径如下D:\BtSoft\WebSoft\nginx\conf\vhost) 注意红色部分,是conf\vhost目录下

4、打开找到对应的域名.conf文件,比如:你的网站域名是www.xxx.com,那么vhost目录下就会有一个www.xxx.com.conf文件,用记事本以外的软件打开编辑,你会看到如下的代码(软件自动生成的)


#START-SITE
server {
listen 80;
server_name  www.jsq.com;
access_log  logs/www.jsq.com.access.log;
root   D:/wwwroot/www.jsq.com; #网站绝对路径
index  index.php default.php index.html index.htm default.html default.htm;
include rewrite/www.jsq.com.conf;
#START-ERROR-PAGE
error_page 403 /403.html;
error_page 404 /404.html;
    error_page 502 /502.html;
#END-ERROR-PAGE
#301-START
#301-END
#REFERER-START
#REFERER-END
#PROXY-START
#PROXY-END
#START-SSL
#END-SSL
#START-PHP
location ~ \.php$ {
root   D:/wwwroot/www.jsq.com;
fastcgi_pass   127.0.0.1:4554;#后面4554 为默认端口请勿修改
fastcgi_index  index.php;
fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
include        fastcgi_params;
    }
#END-PHP
}
#END-SITE


5、修改配置文件如下,红色部分是修改后的,切勿直接复制 代码增加不了颜色,看中文注释


#START-SITE
server {
listen 80;
server_name  www.jqqq.com;
access_log  logs/www.jqqq.com.access.log;
root   E:/wwwroot/www.jqtest.com/public;
index  index.php default.php index.html index.htm default.html default.htm;
#include rewrite/www.jqqq.com.conf; #注释该行,无需引用
location / { #第一部分 起始
    try_files $uri $uri/ /index.php$uri;
           #下面这两个if是为了能获取$_GET参数,不加则无法获取
    if ( -f $request_filename) {  
            break;  
        }  
        if ( !-e $request_filename) {  
            rewrite ^(.*)$ /index.php/$1 last;  
            break;  
        }  
}#第一部分 结束
#START-ERROR-PAGE
error_page 403 /403.html;
error_page 404 /404.html;
    error_page 502 /502.html;
#END-ERROR-PAGE
#301-START
#301-END
#REFERER-START
#REFERER-END
#PROXY-START
#PROXY-END
#START-SSL
#END-SSL
location ~ /\.ht { #第二部分 起始
deny all;
} #第二部 结束
#START-PHP
location ~* \.php(.*)$ {
root   E:/wwwroot/www.jqtest.com/public;
fastcgi_pass   127.0.0.1:4554;
fastcgi_index  index.php;
fastcgi_split_path_info ^((?U).+\.php)(/?.+)$;  #第三部分  起始
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 
     fastcgi_param PATH_INFO $fastcgi_path_info;  #第三部分 结束
fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
include        fastcgi_params;
    }
#END-PHP
}
#END-SITE



 

6、重启Nginx 然后看看网站是否已经可以使用路由了,并且$_GET参数也可以正常使用。 

注意:如果你的配置文件,跟我的不一样,那可能是版本问题,但大体相同,可以自行修改。


标签: 铜仁网站建设,铜仁网站建设工作室,铜仁网站制作,程序员直接建站,铜仁建站,铜仁做网站公司,铜仁企业网站建设,铜仁企业网站制作,铜仁网站制作公司,企业网站制作公司,铜仁网页设计,铜仁网站设计,门户网站建设,门户网站建设公司,门户网站制作,门户网站制作公司,门户网站开发,公司建站多少钱,铜仁公司建站,公司做网站    
【版权与免责声明】本站内容为原创文章,所需转载请注明出处。如发现内容存在版权问题,烦请与本站取得联系,本站将及时沟通并处理。站点连接: http://www.thinkecm.com/article/xwzx/1436676903.html