Laravel 5:404未在除home之外的所有路由上找到,/index.php扩展名未解析
开发系统: Debian“Jessie”虚拟盒,PHP7.0,PostgreSQL 9.x,Laravel 5.4,在Laravel内置服务器上进行测试 生产系统: Ubuntu 16.10 DigitalOcean droplet、PHP7.0、PostgreSQL 9.x、Laravel 5.4、nginx 1.10.3 刚刚解决了我的应用程序中的500错误和502错误,这都是权限问题。现在我可以看到我的应用程序的主页,但所有其他路由都会产生404错误。最常见的建议似乎是,这是一个.htaccess错误,它是通过尝试访问其他路由(以index.php/作为前缀)来诊断的,但是这并不能解决我的问题。这些路径在返回开发环境时都可以完美地运行 这是我的服务器块:Laravel 5:404未在除home之外的所有路由上找到,/index.php扩展名未解析,php,laravel,nginx,http-status-code-404,Php,Laravel,Nginx,Http Status Code 404,开发系统: Debian“Jessie”虚拟盒,PHP7.0,PostgreSQL 9.x,Laravel 5.4,在Laravel内置服务器上进行测试 生产系统: Ubuntu 16.10 DigitalOcean droplet、PHP7.0、PostgreSQL 9.x、Laravel 5.4、nginx 1.10.3 刚刚解决了我的应用程序中的500错误和502错误,这都是权限问题。现在我可以看到我的应用程序的主页,但所有其他路由都会产生404错误。最常见的建议似乎是,这是一个.htac
server {
listen 80;
listen [::]:80;
root /home/user/var/www/mydomain.com/public;
index index.php index.html index.htm;
server_name mydomain.com www.mydomain.com;
location / {
try_files $uri $uri/ /index.php?query_string =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass 127.0.0.1:9000;
}
location ~ /\.ht {
deny all;
}
}
听起来您的nginx配置在生产环境中是错误的。我们可以看到您的
服务器
块吗?上面添加了服务器块。您可以从上面的查询字符串末尾删除=404
吗?现在可以工作了。事后看来,这似乎很明显,但我的印象是,服务器块中内置的注释表明,=404对于nginx显示404回退错误是必要的,特别是在我读过的示例告诉您要包含它的情况下。那么,=404语法的实际功能是什么呢?按照您在查询字符串中使用它的方式,如果您想要回退,那么总是调用404。我通常就是这么做的。