【问题标题】:NGINX return 404 error when adding a trailing slash添加斜杠时 NGINX 返回 404 错误
【发布时间】:2020-02-08 12:13:06
【问题描述】:

今天,我遇到了 NGINX 的问题。

在我的 NGINX 配置中,我有这个:

location ~ / {
    try_files $uri $uri/ /index.php?$query_string;
}

例如,我想通过 Laravel 定义的路由访问https://my.domain/hello。有用 但现在如果我访问https://my.domain/hello/,它会返回一个 404 NGINX 错误页面。我还指出我使用 Plesk。

您对如何解决这个问题有任何想法吗?

感谢您的宝贵时间;)

【问题讨论】:

  • 同样的问题,它似乎只是 plesk 的问题

标签: laravel nginx plesk


【解决方案1】:

如果路径不是目录并且以/结尾,则添加301重定向

if (!-d $request_filename) {
   rewrite ^/(.*)/$ /$1 permanent;
}

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

【讨论】:

    【解决方案2】:

    如果你检查 nginx 配置模板你会发现这一行

    /usr/local/psa/admin/conf/templates/default/domain/nginxDomainVirtualHost.php

            <?php if ($VAR->domain->physicalHosting->directoryIndex && !$VAR->domain->physicalHosting->proxySettings['nginxProxyMode']): ?>
         location ~ /$ {
             index <?=$VAR->quote($VAR->domain->physicalHosting->directoryIndex)?>;
         }
             <?php endif ?>
    

    您要么需要重新启用代理模式(它将重新启用 apache,但 nginx 仍将首先接收请求)或 create a custom template 为您的域并删除此行

    这与你无关,但如果你没有使用 php(例如:nodejs),你也可以禁用 php 支持,这也将摆脱这一行

    【讨论】:

      猜你喜欢
      • 2014-04-27
      • 2019-01-11
      • 2016-07-30
      • 2014-12-25
      • 2023-03-27
      • 1970-01-01
      • 2012-02-27
      • 2021-08-24
      • 1970-01-01
      相关资源
      最近更新 更多