You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel共享主机:如何将根目录重写至public并重定向/public回根目录?

Laravel共享主机:重定向/public请求至根目录方案

针对你已完成根目录请求重写至public,但仍可直接访问domain.com/public的问题,以下是具体解决方法:

Apache环境(多数共享主机默认)

在网站根目录的.htaccess文件中,先添加重定向规则,再保留原重写规则,完整配置如下:

RewriteEngine On

# 重定向所有/public开头的请求到根目录对应路径(永久重定向,SEO友好)
RewriteRule ^public/(.*)$ /$1 [R=301,L]

# 将根目录请求转发至public目录处理
RewriteCond %{REQUEST_URI} !^/public/
RewriteRule ^(.*)$ /public/$1 [L]

说明:

  • 测试阶段可临时将R=301改为R=302(临时重定向),避免浏览器缓存影响测试结果
  • L表示当前规则处理完成后停止后续规则匹配
  • 确保public目录下的默认Laravel.htaccess保持不变,该文件负责处理Laravel路由的内部重写

Nginx环境(若共享主机支持)

若主机使用Nginx,在站点配置文件中添加以下规则:

# 重定向/public请求到根目录
location ^~ /public/ {
    rewrite ^/public/(.*)$ /$1 permanent;
}

# 根目录请求转发至public目录
location / {
    try_files $uri $uri/ /public/index.php?$query_string;
}

注意事项

  • 确认Apache已启用mod_rewrite模块(多数共享主机默认开启)
  • 修改配置后需清除浏览器缓存再测试,避免旧缓存干扰
  • 若共享主机限制了.htaccess权限,可联系主机服务商确认相关设置

内容的提问来源于stack exchange,提问作者Gavo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 16:32:43