Laravel 5:404未在除home之外的所有路由上找到,/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

开发系统: 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/作为前缀)来诊断的,但是这并不能解决我的问题。这些路径在返回开发环境时都可以完美地运行

这是我的服务器块:

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。我通常就是这么做的。