【问题标题】:Overcoming "404 Not Found" in Nginx克服 Nginx 中的“404 Not Found”
【发布时间】:2022-08-02 18:33:24
【问题描述】:

我有一个使用 Apache 提供静态文件的 VPS。在 Django 中进行了一些研究之后,我决定从 Apache 更改为 Nginx。我认为这将是一件简单的事情(例如,为域指定根文件夹,就可以解决它)。我发现我的期望是不切实际的,因为现在我在除根文件夹之外的所有路径上都得到了“404 Not Found”。

mysite.conf:

server {
   listen       [::]:443 ssl;
   listen       443 ssl;
   server_name  share.mysite.com;
   root         /var/www/html/share.mysite.com;
   location    / {
       index index.html index.php;
   }
}

如何扩展此配置以提供位于层次结构中不同文件夹中的静态文件?

 1. share.mysite.com/tutorials/a-subject/a.mp4
 2. share.mysite.com/tutorials/another-subject/something.jpg
 3. share.mysite.com/some-folder/somefile.zip

目前,上述任何组合都会给我一个“404 Not Found”,除了“https://share.mysite.com\”。然而,文件在那里。

我知道这可能涉及 \"location\" 关键字,但我还没有看到可以转化为我的案例的清晰解释。我寻求理解。 Nginx 对我来说是新的。

    标签: nginx


    【解决方案1】:

    这是因为重写了规则。您在使用 Apache 时已将它们放在适当的位置,因为 WordPress 很可能会自动创建一个 .htaccess 文件并为所谓的“漂亮” URL 放置必要的默认重写规则(例如访问 /blog /contact 等)。为了在 Nginx 中做到这一点,您必须在虚拟主机中为您的域添加几行,请参阅官方文档:

    【讨论】:

      猜你喜欢
      • 2021-12-27
      • 1970-01-01
      • 2016-06-30
      • 2020-10-21
      • 1970-01-01
      • 2015-02-20
      • 1970-01-01
      • 2021-07-25
      • 1970-01-01
      相关资源
      最近更新 更多