Laravel项目URL尾部斜杠重定向异常问题求助
Laravel 尾部斜杠URL重定向问题解决方法
你需要调整根目录的.htaccess文件,先处理尾部斜杠的重定向,再执行请求转发到public目录,这样就能避免带斜杠的URL被转到public/xxx/的问题。修改后的完整代码如下:
<IfModule mod_rewrite.c> RewriteEngine On # 移除URL尾部的斜杠(排除根目录"/"及真实存在的目录) RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)/$ /$1 [L,R=301] # 转发非public的请求到public目录 RewriteCond %{REQUEST_URI} !/public RewriteRule ^(.*)$ public/$1 [L] </IfModule>
规则说明:
尾部斜杠移除规则:
RewriteCond %{REQUEST_FILENAME} !-d:跳过真实存在的目录(避免破坏目录访问的默认索引页行为)RewriteRule ^(.*)/$ /$1 [L,R=301]:将所有以斜杠结尾的非目录URL永久重定向到不带斜杠的版本,L表示终止后续规则执行,R=301标记永久重定向,帮助浏览器缓存正确的URL路径。
请求转发规则:保留你原有的逻辑,将非public路径的请求转发到Laravel的public目录处理。
额外检查项:
- 确认Apache的
mod_rewrite模块已启用 - 确保站点Apache配置中,对应项目目录的
AllowOverride设置为All,保证.htaccess规则能正常生效
内容的提问来源于stack exchange,提问作者Baran Arda
相关产品推荐
相关产品推荐

