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

如何在cPanel主机中配置带SSL的Symfony 3.3应用并修复重定向异常

解决GoDaddy cPanel部署Symfony 3.3时HTTPS重定向到public_html根的问题

我之前帮客户排查过几乎一模一样的问题——在GoDaddy专用主机的cPanel上部署Symfony,文档根设为public_html下的子文件夹,HTTP访问一切正常,但装完SSL证书修改.htaccess后,网站直接跳去public_html根目录,完全偏离预期。给你几个按优先级尝试的解决方案:

1. 修正web目录下的.htaccess重定向规则

你的问题大概率是重定向规则没有正确保留当前子目录的路径,或者GoDaddy的服务器变量处理有特殊逻辑。把web目录里的.htaccess中的HTTPS重定向规则替换成下面这样:

RewriteEngine On

# 保留Symfony原有的路由转发规则
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ app.php [QSA,L]

# HTTPS重定向:用REQUEST_URI确保完整路径被保留
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

用%{REQUEST_URI}代替手动拼接路径,能确保不管你的文档根在哪个子目录,重定向都会指向当前请求的完整路径,不会跳去public_html根目录。

2. 检查public_html根目录的全局.htaccess

GoDaddy在安装SSL证书后,有时候会自动在public_html根目录的.htaccess里添加全局HTTPS重定向规则,这会直接覆盖子目录的规则。打开public_html根的.htaccess看看,如果有类似下面的内容,要么删除,要么修改成仅针对你的子目录生效:

# 如果看到这类全局规则,要么删除,要么添加子目录过滤条件
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} ^/your-subfolder/web/
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

3. 确认cPanel的文档根设置未被重置

有时候安装SSL证书后,cPanel会偷偷把域名的文档根改回默认的public_html。去cPanel的「域名」→「域」页面,找到你的域名,检查「文档根」是否还是你设置的public_html/your-subfolder/web。如果被重置了,重新改回来并保存即可。

4. 配置Symfony的请求上下文

最后,确保Symfony本身生成的URL都是HTTPS的,避免后续出现混合内容或二次跳转问题。打开app/config/parameters.yml,添加或修改这几个参数:

router.request_context.scheme: https
router.request_context.host: your-domain.com
router.request_context.base_url: /your-subfolder/web # 你的子目录路径

修改后记得清空Symfony的生产环境缓存:php bin/console cache:clear --env=prod,同时用浏览器隐私模式测试,避免301重定向的缓存干扰。

内容的提问来源于stack exchange,提问作者Aleli Sanchez Mendez

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 04:26:40