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());
我正在使用 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
.
如果您查看 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());