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

Fedora 36 Apache部署Django后,主机名访问报400错误求助

解决Django通过主机名访问出现Bad Request(400)的问题

问题分析

通过IP访问正常但主机名访问返回400错误,核心原因是Django的ALLOWED_HOSTS配置未包含目标主机名,Django会验证请求的Host头,若不在允许列表内则直接返回400错误。此外Apache配置中的重定向规则也可能加剧问题。

解决步骤

1. 更新Django的ALLOWED_HOSTS配置

找到项目根目录下的settings.py文件,修改ALLOWED_HOSTS字段,将主机名calljournal.local添加进去:

ALLOWED_HOSTS = ['192.168.1.109', 'calljournal.local']

注:若仅用于本地测试,可临时设置为ALLOWED_HOSTS = ['*'],但生产环境请勿使用此配置,存在安全风险。

2. 调整Apache虚拟主机的重定向规则

当前配置中最后一行的重定向会将所有HTTP请求跳转到IP的HTTPS地址,导致主机名请求被强制替换为IP,需修改为重定向到主机名的HTTPS地址:

# 原配置
# redirect / https://192.168.1.109
# 修改后
redirect / https://calljournal.local

若尚未配置HTTPS虚拟主机,需先完成对应配置(如生成本地SSL证书、配置SSL参数),否则可暂时注释掉该重定向规则,先验证HTTP访问是否正常。

3. 重启Apache服务

修改配置后,重启httpd服务使更改生效:

sudo systemctl restart httpd

验证配置

完成上述操作后,再次使用http://calljournal.local或https://calljournal.local访问,即可正常加载Django项目。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 09:01:15