laravel路由404问题

laravel路由404问题

laravel路由404问题

起因: 加了路由访问http://www.blog.com/user/add一直404 原因是因为我们在配置文件里面写的根目录是D:/sofeware/phpstudy/phpstudy_pro/WWW/blog/public 只到public目录下。 所以需要这样访问

http://www.blog.com/index.php/user/add

或者需要在vhosts.conf加入

try_files $uri $uri/ /index.php?$query_string;

就可以访问http://www.blog.com/user/add

在 Nginx 配置中添加 try_files $uri $uri/ /index.php?$query_string; 是为了确保当访问的 URL 在服务器上找不到对应的文件时,将请求转发给 Laravel 的入口文件 index.php 进行处理。

解释一下这个配置的作用:

try_files $uri $uri/ 部分表示首先尝试直接访问请求的文件,如果文件不存在,则尝试访问以请求的文件为前缀的目录。

/index.php?$query_string 部分表示如果以上尝试都失败,则将请求转发给 index.php 文件进行处理,并将查询字符串(如 GET 参数)一并传递。

这样的配置可以确保 Laravel 应用程序的所有请求都被路由到 index.php 文件进行处理,无论是访问具体的文件还是目录。

如果没有添加这个配置,访问 Laravel 应用程序时会出现 404 错误,因为服务器无法找到匹配的文件或目录来处理请求。

添加 try_files $uri $uri/ /index.php?$query_string; 配置后,Nginx 会首先尝试匹配实际的文件或目录,如果找不到,则将请求转发给 Laravel 的 index.php 文件,由 Laravel 框架来处理请求并响应正确的内容。

请确保在配置文件中正确设置了 root 和 index,并按照实际情况调整了 PHP-FPM 的相关配置,以便 Nginx 正确地传递请求给 PHP 处理。

这样,通过添加 try_files $uri $uri/ /index.php?$query_string; 配置,您应该能够正常访问 Laravel 应用程序了。

查看原文