【问题标题】:Lumen application work with trailing slash using Nginx serverLumen 应用程序使用 Nginx 服务器处理斜杠
【发布时间】:2018-01-04 19:28:00
【问题描述】:

我是 Lumen 的新手,因为我以前用过别的东西。我已经测试了 Lumen 项目,发现它在良好的支持和文档下运行良好,并且可以扩展到 Laravel,这是一个更大的项目。所以我决定为一家公司使用 Lumen,

我目前面临的唯一问题是 Nginx 上的 url 斜杠。 例如 $app->get('welcome', function() { return 'Hello'; }); 它回应 http://mysite.dev/welcome 但有一个斜杠 http://mysite.dev/welcome/ 该网站抛出 404。

这是因为旧网站一直使用带有斜杠的所有网址,例如PPC,SEO ...更多,他们不想重做和更改整个过程,包括使用这些网址的第3方,他们不能从带有结尾的网址执行301 / 重定向到不结尾的网址/这将导致过多的重定向.

我已经尝试了整整一周的解决方案,但仍然找不到最符合此用户要求的解决方案。

lumen 有什么方法可以将路由 url 恢复为使用结尾 / 而不是使用结尾 / 吗??

或者您能否推荐我使用其他东西?为了满足这个要求。

我也试过这个服务商还是不行link

问候

【问题讨论】:

    标签: php laravel nginx lumen trailing-slash


    【解决方案1】:

    如果你使用Nginx,试试这个配置:

    index  index.html index.htm index.php;
    location @rewrite {
        rewrite ^/(.*)$ /index.php;
    }   
    location / {
        try_files $uri $uri/ @rewrite;
    }
    

    我曾经遇到过类似的问题,用RoutesRequest.php调试后发现5.4版本不再需要$query_string或者$args的东西了(没理由大部分教程还在有他们)。

    希望这有帮助。如果没有,也许您也可以尝试使用 RoutesRequest.php 进行调试,添加一些有用的输出肯定会帮助您找到问题。

    【讨论】:

      【解决方案2】:

      Lumen 和 Laravel 应该可以使用斜杠。 404 可能是由于 nginx 配置错误造成的。

      这就是我的 nginx 配置捕获尾部斜杠并在该位置使用相同内容的方式。

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

      【讨论】:

      • 感谢您的帮助。这个配置是我现在拥有的。请记住,在 lumen 或 laravel 中必须进行一些配置,以使不带“/”的 url 返回 404 而不是带“/”
      猜你喜欢
      • 2021-12-06
      • 1970-01-01
      • 1970-01-01
      • 2016-07-31
      • 1970-01-01
      • 1970-01-01
      • 2023-04-10
      • 2021-07-06
      • 1970-01-01
      相关资源
      最近更新 更多