Laravel路由配置未生效

使用laravel框架,做了一个简单的demo,在一个新建的Controller中写一个index方法并建立对应路由及视图。如图

Laravel路由配置未生效_第1张图片

Laravel路由配置未生效_第2张图片

Laravel路由配置未生效_第3张图片

现象描述
  1. 访问 http://laravel-demo:84/index.php laravel欢迎界面正常
  2. 访问 http://laravel-demo:84/index.php/student 出错,如图
    Laravel路由配置未生效_第4张图片
  3. 但是在apache下,都是成功的。
所以说问题出在nginx配置中
server {
        listen       84;
        server_name  laravel-demo;

        location / {
            root     e:/wnmp/code/laravel-demo/public;
            index  index.html index.htm index.php;
			
			#开启后忽略入口文件
			#if (!-e $request_filename) {
			#	rewrite  ^(.*)$  /index.php$1  last;
			#	break;
			#}
			
        }

        location ~ \.php$ {
            root           E:/wnmp/code/laravel-demo/public;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
			#fastcgi_split_path_info  ^(.+\.php)(.*)$;
			#fastcgi_param PATH_INFO $fastcgi_path_info;
            include        fastcgi_params;
        }
    }
经过一番波折,发现问题出在这句话
location ~ \.php$ {
这里的匹配规则是以.php结尾的。这个路径“http://laravel-demo:84/index.php/student” 不符合匹配规则,所以里面的配置对它无效。
重新修改匹配规则为
location ~ \.php(.*)$ {
再次访问http://laravel-demo:84/index.php/student,正常,如图。

在这里插入图片描述

PS: 这里具体的匹配规则可参考: 详解 nginx location

你可能感兴趣的:(环境配置,php)