php – Laravel公共目录列表重定向循环错误 – 需要优雅地失败
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php – Laravel公共目录列表重定向循环错误 – 需要优雅地失败,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1496字,纯文字阅读大概需要3分钟。
内容图文
![php – Laravel公共目录列表重定向循环错误 – 需要优雅地失败](/upload/InfoBanner/zyjiaocheng/761/5de65d90c50f45af9903f3ab2b3e6caf.jpg)
我正在使用Laravel并在我的公共目录中有一个上传文件的文件夹,名为uploads.
我想确保没有人可以意外导航到该目录的根目录,所以我添加了一条路由如下:
Route::get('uploads', function(){
return Redirect::to('/');
});
这不起作用,因为我在浏览器中遇到重定向循环错误.我把它缩小到目录存在的事实 – 如果我删除/重命名目录,路由按预期工作.
这让我觉得有更好的办法来解决这个问题.我该如何解决这个问题?
解决方法:
显然,重定向循环似乎来自斜杠重定向,在Laravel默认.htaccess文件中定义.删除以下行:
RewriteRule ^(.*)/$$1 [L,R=301]
将修复驻留在公用文件夹中的文件夹上的重定向循环问题.
然而,这会让你退后一步,因为现在你没有尾随斜杠重定向.
如果不是现有目录,那么你可以做的是重定向尾部斜杠,如下所示:
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$$1 [L,R=301]
您可能要做的第二件事是从Laravel默认.htaccess文件的最后一个块中删除相同的条件:
RewriteCond %{REQUEST_FILENAME} !-f
#RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [L]
这个块说:“将所有内容重定向到index.php文件,现有文件和文件夹除外.”我注释掉了目录条件,因为我不希望人们在我的公共文件夹中访问文件夹索引.如果你这样做,请取消注释.这是我完整的.htaccess文件:
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
RewriteBase /
# Redirect trailing slashes
# Only if not existing directory. This prevents redirect loop.
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$$1 [L,R=301]
# Redirect everything to index.php if not existing file like css or jpg
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
内容总结
以上是互联网集市为您收集整理的php – Laravel公共目录列表重定向循环错误 – 需要优雅地失败全部内容,希望文章能够帮你解决php – Laravel公共目录列表重定向循环错误 – 需要优雅地失败所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。