Laravel无限循环

时间:2014-10-26 03:42:53

标签: laravel-4

我正在使用Laravel v.4.2构建应用程序。在app/public目录中,我有images文件夹,其中包含静态图像。然后,我为用户创建了ImagesController来管理资产。但是,当我在浏览器中输入URL:myapp.dev/images时,出现了无限重定向循环错误。我仔细检查了所有路线,发现没有与images路径相关的路线。即使我注释掉所有路径条目,错误仍然存​​在。

我通过重命名控制器找到了解决方法,但这不是一个理想的解决方案。

我该怎么做才能彻底解决这个错误?

1 个答案:

答案 0 :(得分:2)

您必须重命名images目录或images路线。正在发生的事情是服务器的预期行为:当它到达public目录(所有Laravel请求开始的地方)时,它发现images文件夹存在,因此您的URL不会重定向到{{ 1}}并且您的应用程序未启动。所以它甚至都没有到达你的路线。


循环的原因本身取决于index.php文件的内容,但可能会发生这种情况,因为当您请求.htaccess时,您的服务器会识别myapp.dev/images是一个目录,立即返回301重定向到images(尾随myapp.dev/images/)。然后,您的/文件会跳转并尝试将其转换回.htaccess,而不会显示尾部斜杠。这发生在第myapp.dev/images行。

通常,导航到RewriteRule ^(.*)/$ /$1 [L,R=301]中的文件夹时,您应该会收到 403 Forbidden 错误。执行此操作的行是app/public,它禁用在浏览器中显示目录列表(或索引)的功能。通常,您在服务器的Options -Indexes文件中禁用了服务器范围的索引。您可能需要检查是否属实 - 或者至少将httpd.conf添加到Options -Indexes中的.htaccess文件中。

另外,请确保app/public中的.htaccess文件包含这两行

app/public