【问题标题】:Redirect loop in Laravel when migrating existing codebase迁移现有代码库时 Laravel 中的重定向循环
【发布时间】:2014-09-16 03:25:13
【问题描述】:

我有一个带有现有代码库的网络应用程序,我正在尝试慢慢迁移到 Laravel。我已经在 Laravel 公共目录中设置了一些现有站点的 URL 结构,所以如果那里有一个现有的物理目录或文件,它将执行这些文件,然后我计划在 app/routes.php 中为这些 URL 设置路由我希望 Laravel 处理。

如果我像这样直接调用 URL,这可以正常工作 - http://ttm.presencehosting.net/test/index.php

问题是如果我不使用 index.php,例如http://ttm.presencehosting.net/test/ - 这会将浏览器设置为重定向循环。 (我没有为“测试”设置路由,它是一个实际的文件夹)。理想情况下,我希望两个 URL 都执行 app/public/test/index.php 中的代码

谁能帮助我们停止重定向循环?

【问题讨论】:

  • 问题可能出在您的.htaccess 文件中。您可以给我们看看吗?

标签: php laravel


【解决方案1】:

您的.htaccess 文件中可能有这个:

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

当您尝试访问公共目录中的目录时,此规则会执行操作,创建重定向循环。

您可以通过添加条件来检查目录是否已存在来避免这种情况:

# Redirect Trailing Slashes...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]

当心 301 重定向,它们被令人讨厌的缓存!
另外,请检查这是否不会“破坏”您现有的任何路线。

希望有帮助!

【讨论】:

    猜你喜欢
    • 2014-06-02
    • 2017-02-11
    • 2018-11-21
    • 2015-08-04
    • 2011-09-04
    • 2014-03-24
    • 2018-04-24
    • 1970-01-01
    • 2010-10-25
    相关资源
    最近更新 更多