Laravel中如何将访问公共存储目录的请求重定向至首页?
解决Laravel存储目录访问重定向至首页的问题
方法一:通过Laravel路由实现
在routes/web.php文件中添加以下路由规则,确保它放在其他路由的前面:
// 匹配所有以斜杠结尾的storage目录请求(如storage/、storage/uploads/) Route::get('storage/{any}', function () { return redirect('/'); })->where('any', '.*\/$');
这个路由利用正则表达式.*\/$匹配所有以斜杠结尾的路径,仅拦截目录访问请求,具体文件的访问不会受到影响。
方法二:通过服务器配置实现
Apache环境
在项目根目录下的public/.htaccess文件中,在Laravel默认的Rewrite规则之前添加以下规则:
# 重定向storage目录请求到首页 RewriteRule ^storage/.*\/$ / [R=301,L]
R=301表示永久重定向,若需要临时重定向可改为R=302L表示执行此规则后停止后续规则的处理
Nginx环境
在你的站点Nginx配置文件中,添加以下location规则:
# 拦截storage目录请求并重定向到首页 location ~ ^/storage/.*/$ { return 301 /; }
添加完成后重启Nginx服务使配置生效。
前置检查
确保你已经正确创建了存储目录的符号链接,执行以下命令完成链接:
php artisan storage:link
内容的提问来源于stack exchange,提问作者Rick
相关产品推荐
相关产品推荐

