Laravel 5 带尾部斜杠的分页重定向到 301

Laravel 5 pagination with trailing slash redirect to 301

我正在使用 Laravel 5 并注意到分页在 ?page=# 之前添加了一个尾部斜杠,因此它总是重定向到 301 页面。

http://example.com/news/articles/?page=2 将 301 重定向到 http://example.com/news/articles?page=2

这导致我使用 ajax 的分页变慢,因为它有 2 个响应。

如何让 laravel 接受 http://example.com/news/articles/?page=2 这样它就不会进行 301 重定向?

我通过使用 LengthAwarePaginator.

this 网站建立了基础

如果您查看 app/public/.htaccess 文件,您会看到这一行:

# Redirect Trailing Slashes...
RewriteRule ^(.*)/$ / [L,R=301]

通过删除它,您将禁用尾部斜杠重定向。

@shaddys 的答案是最恰当的更好的解决方案,但由于其他路线我无法使用它。所以我就这样做了

$.ajax({
     url: url.replace('/?','?'),
      ....
});

有了这个,您将获得有效的分页并且没有重定向。

我会在我的控制器中执行此操作 而不是修改 .htaccess

    $posts= Article::latest()->paginate(4);
    $posts->setPath('');//just add this line after your paginate function

或者某些用户可能更愿意在视图中生成链接时添加此行

$links = str_replace('/?', '?', $posts->render());