【问题标题】:Laravel 5 pagination with trailing slash redirect to 301带有斜杠的 Laravel 5 分页重定向到 301
【发布时间】:2015-08-30 11:39:15
【问题描述】:

我正在使用 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 重定向?

我通过使用LengthAwarePaginatorthis 站点建立它。

【问题讨论】:

  • 你能展示你用于分页的代码吗

标签: php laravel redirect pagination laravel-5


【解决方案1】:

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

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

或者某些用户在视图中生成链接时可能更喜欢添加这一行

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

【讨论】:

    【解决方案2】:

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

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

    有了这个,你将获得工作分页并且没有重定向。

    【讨论】:

      【解决方案3】:

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

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

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

      【讨论】:

      • 非常感谢!!!它现在正在工作。虽然我有一个问题。是否应该将其删除,是否有“副作用”?像搜索引擎优化或任何?为什么它首先被包括在内?我确定这是有原因的。再次感谢!
      猜你喜欢
      • 2015-12-25
      • 1970-01-01
      • 2015-08-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-10
      • 1970-01-01
      • 2012-06-29
      相关资源
      最近更新 更多