我正在使用Laravel v.4.2构建应用程序。在app/public
目录中,我有images
文件夹,其中包含静态图像。然后,我为用户创建了ImagesController
来管理资产。但是,当我在浏览器中输入URL:myapp.dev/images
时,出现了无限重定向循环错误。我仔细检查了所有路线,发现没有与images
路径相关的路线。即使我注释掉所有路径条目,错误仍然存在。
我通过重命名控制器找到了解决方法,但这不是一个理想的解决方案。
我该怎么做才能彻底解决这个错误?
答案 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