【问题标题】:Nginx directory and index file configuration like ApacheNginx 目录和索引文件配置如 Apache
【发布时间】:2014-12-11 22:08:45
【问题描述】:

我决定在我的本地机器上尝试 Nginx,结果发现有一个地方很痛苦。

在使用 Nginx 之前,我使用的是 Apache,并且我的根文件夹配置为 /var/www/html。服务器名称为 localhost。这意味着转到localhost/project,它打开了/var/www/html/project 里面的内容,并且一切正常。

但是在 Nginx 上,我将根名称和服务器名称配置为完全相同(root = /var/www/html 和 server_name = localhost),我希望得到与 Apache 相同的结果。

问题是只有子目录的主页有效。例如,localhost/project 有效,但 localhost/project/foo 返回 404。

如果我将 root 配置为项目的 root (root = /var/www/html/project),那么我可以完美地访问localhost/project/foo,并且一切正常。

这里有什么问题?应该是这样还是我的配置有问题?

【问题讨论】:

  • 目前尚不清楚您拥有哪些文件以及在哪里。您的索引配置正确吗? foo 是文件还是目录?如果是目录,当你添加尾部斜杠/时会发生什么?
  • 这是我的配置 -> gist.github.com/archonkulis/ac6351b647d1a286582a 请注意,注释的 try_files 行很少。我都试过了,都没有得到预期的结果。
  • @Brad 这是一个控制器动作。项目在 laravel 框架上。因此,它具有 MVC 结构,如果我正确理解了所有内容,则每个请求都会通过项目 index.php 文件。但是,如果我创建一个文件夹和一些 php 文件并尝试访问它,它确实有效。呃,现在我更困惑了,因为我认为这无关紧要。
  • @user3722573 啊,你应该在你的问题中添加这个细节。这是要知道的重要信息。 Laravel 有一个相当大的配置文件,你需要让它在 Nginx 中工作。我目前没有副本,但如果你四处寻找,你会找到它。
  • @Brad 是的,我没有提到这一点,因为我认为这并不重要,但我尝试在 laravel 公用文件夹中使用 php 文件创建文件夹。我可以很好地访问它。所以是的......老实说,我现在更加困惑

标签: php apache nginx


【解决方案1】:

好吧,我建议您为每个应用程序使用一个虚拟主机。但在这种情况下,您可以将值“autoindex on”放在您的位置/配置中......就像这样:

location / {
    try_files $uri $uri/ index.php?$query_string;
    autoindex on;

}

享受 Nginx :) 更好

【讨论】:

  • 那是我试图不做的事情。我知道在现实生活中的服务器中这是必须的,但我有点习惯“localhost/project”之类的东西;)无论如何,感谢自动索引,很快就会尝试。
猜你喜欢
  • 1970-01-01
  • 2016-03-27
  • 2018-07-16
  • 1970-01-01
  • 1970-01-01
  • 2022-12-04
  • 1970-01-01
  • 1970-01-01
  • 2014-03-15
相关资源
最近更新 更多