迁移现有代码库时,重定向Laravel中的循环


Redirect loop in Laravel when migrating existing codebase

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

如果我直接调用这样的URL,这就可以了——http://ttm.presencehosting.net/test/index.php

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

有人能帮助如何停止重定向循环吗?

您的.htaccess文件中可能包含以下内容:

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

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

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

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

小心301重定向,它们被缓存得很烦人
此外,请检查这是否不会"损坏"任何现有的路由。

希望能有所帮助!