部署在PythonAnywhere的Django站点仅带www的HTTPS可访问问题求助
问题排查与解决建议
1. 检查GoDaddy的DNS解析配置
- 确认主域名
example.com已配置正确的解析记录:- 若用A记录,需指向PythonAnywhere提供的服务器IP;若用CNAME记录,需指向你的PythonAnywhere账号域名(格式如
your-username.pythonanywhere.com)。 - 可设置URL转发(永久重定向301),将
example.com自动跳转至https://www.example.com,统一访问路径。
- 若用A记录,需指向PythonAnywhere提供的服务器IP;若用CNAME记录,需指向你的PythonAnywhere账号域名(格式如
2. 核对PythonAnywhere的域名绑定
- 在PythonAnywhere的Web控制台中,确保同时添加了
example.com和www.example.com两个自定义域名,且都启用了SSL(即便证书状态正常,主域名未绑定也会导致无法访问)。 - 可在域名设置里开启强制HTTPS和重定向到www选项,自动规范访问请求。
3. 检查Django的ALLOWED_HOSTS设置
- 打开Django项目的
settings.py,确认ALLOWED_HOSTS列表同时包含主域名和www子域名,示例:
若仅添加了ALLOWED_HOSTS = ['example.com', 'www.example.com']www.example.com,主域名访问会被Django拦截并返回400错误。
4. 确认SSL证书的覆盖范围
- 虽然证书状态显示正常,仍需确认证书是否同时包含
example.com和www.example.com(即支持SAN的多域名证书)。可在浏览器访问https://example.com后查看证书详情,若主域名不在证书覆盖列表中,需重新申请包含双域名的证书。
5. 排查浏览器或DNS缓存
- 尝试用无痕模式访问
example.com,或清除本地浏览器缓存;也可通过nslookup example.com或dig example.com命令,检查主域名解析是否指向正确的PythonAnywhere服务器IP,排除DNS缓存导致的解析异常。
内容的提问来源于stack exchange,提问作者Dobbs760
相关产品推荐
相关产品推荐

