Symfony 5部署至Hostinger生产环境后403 Forbidden错误解决求助
解决Symfony 5部署到Hostinger出现403 Forbidden的问题
针对你遇到的Symfony 5部署到Hostinger后出现403禁止访问的问题,结合Hostinger的环境特性,给出以下关键解决方案:
1. 修改Hostinger网站根目录指向public文件夹
Hostinger默认将网站的Document Root设置为public_html,但Symfony的入口文件index.php和路由规则文件.htaccess都在项目的public子文件夹中,直接访问public_html会因无默认入口文件返回403。
操作步骤:
- 登录Hostinger控制面板,进入「网站」->「管理网站」
- 找到「域名」设置里的「Document Root」选项
- 将其修改为
public_html/public,保存后刷新网站
2. 若无法修改根目录,添加根目录.htaccess转发规则
如果因权限或限制无法修改Document Root,可在public_html根目录新建.htaccess文件,将所有请求转发到public文件夹的入口:
<IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^$ public/ [L] RewriteRule (.*) public/$1 [L] </IfModule>
3. 修复文件夹权限(避免777的安全风险)
你之前使用chmod -R 777 public/权限过于开放,存在安全隐患,建议调整为更安全的权限:
- 设置文件夹权限为755:
chmod -R 755 public/ - 设置文件权限为644:
chmod -R 644 public/*
同时确保Symfony的var/目录拥有正确的写入权限:
chmod -R 775 var/ chown -R www-data:www-data var/
4. 验证Apache模块是否启用
确保Hostinger的Apache服务器已启用mod_rewrite和mod_negotiation模块:
- 登录Hostinger控制面板,进入「高级」->「Apache Modules」
- 勾选
mod_rewrite和mod_negotiation,保存后重启Apache服务
完成以上操作后,清除生产环境缓存:
php bin/console cache:clear --env=prod
内容的提问来源于stack exchange,提问作者Dieudonne Gwet
相关产品推荐
相关产品推荐

