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

Laravel部署到AWS后URL需带public后缀无法隐藏问题

Laravel AWS部署去除URL中public段失效解决方案

1. 排查Apache基础配置

.htaccess规则在AWS环境失效大多是默认Apache配置限制导致,按顺序检查:

  • 确认rewrite模块已启用
    Debian/Ubuntu环境执行命令:sudo a2enmod rewrite && sudo systemctl restart apache2
    Amazon Linux/CentOS环境执行命令:sudo sed -i '/^#LoadModule rewrite_module/s/^#//' /etc/httpd/conf.modules.d/00-base.conf && sudo systemctl restart httpd
  • 开启目录配置的.htaccess覆盖权限
    找到Apache对应站点的配置文件,定位到<Directory "/你的站点根目录绝对路径/projectfoldername">配置块,将其中的AllowOverride None修改为AllowOverride All,保存后重启Apache生效。

2. 修正根目录.htaccess规则

你当前的规则没有适配子目录路径,将projectfoldername目录下的.htaccess内容替换为如下配置:

<IfModule mod_rewrite.c>
   RewriteEngine On
   RewriteBase /projectfoldername/
   RewriteCond %{REQUEST_URI} !^/projectfoldername/public/
   RewriteRule ^(.*)$ public/$1 [L,QSA]
</IfModule>

3. 推荐最优部署方案(安全性更高)

通过重写规则实现去public的方式存在暴露根目录.env等敏感文件的风险,更建议直接修改Apache站点的DocumentRoot配置:

  • 将站点DocumentRoot从原来的/xxx/projectfoldername修改为/xxx/projectfoldername/public
  • 对应Directory配置块也同步修改为指向public目录
  • 重启Apache后无需额外重写规则即可直接通过根路径访问站点,同时避免敏感文件泄露风险。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 09:45:03