Lumen应用程序使用Nginx服务器

时间:2017-07-28 16:29:31

标签: php laravel nginx lumen trailing-slash

所有我都是Lumen的新手,因为之前我正在使用别的东西。我测试了Lumen项目并发现它可以很好地支持和文档,并且可以扩展到Laravel,这是一个更大的项目。所以我决定将Lumen用于公司,

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

这是因为旧网站一直使用带有结束斜杠的所有网址。 PPC,搜索引擎优化...更多,他们不想重做和改变整个过程,包括使用这些网址的第三方,他们不能从结尾的网址做301或重定向到网址没有结束/这将导致过多的重定向

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

管腔是否有办法恢复路由网址以结束/不使用而不结束/ ??

或者你可以建议我使用别的东西吗?符合此要求。

我也尝试过这个服务提供商仍然无法正常工作link

此致

2 个答案:

答案 0 :(得分:0)

Lumen和Laravel应该没有尾随斜杠。 404可能是由于nginx配置错误造成的。

这就是我的nginx配置看起来如何捕获尾部斜杠并在该位置使用相同的内容。

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

答案 1 :(得分:0)

如果您正在使用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 进行调试,添加一些有用的输出肯定会帮助您找到问题。