如何在cPanel上正确配置Django应用以替换原有WordPress站点
问题成因与解决方法
静态文件缺失的原因及修复
- Django静态文件配置未生效
- 检查
settings.py中的STATIC_URL是否设为'/static/',STATIC_ROOT是否指向cPanel中部署的静态文件实际路径(比如/home/yourusername/public_html/static)。 - 确保已执行
python manage.py collectstatic命令,将所有静态文件收集到STATIC_ROOT指定的目录。
- 检查
- Apache权限或路径映射问题
- 确认
STATIC_ROOT目录的权限为755,文件权限为644,保证Apache能读取这些文件。 - 检查cPanel中主域名的文档根目录设置,确保静态文件目录在Apache的访问范围内。
- 确认
- .htaccess规则干扰
- 旧WordPress的
.htaccess规则可能会重写静态文件请求,需在规则中添加例外:
放在WordPress原RewriteRule之前,避免静态请求被重定向。RewriteCond %{REQUEST_URI} !^/static/
- 旧WordPress的
页面跳转旧WordPress 404的原因及修复
- .htaccess规则冲突
- 直接替换主域名根目录下的
.htaccess为Django所需的WSGI规则,覆盖旧WordPress规则:RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ wsgi.py/$1 [L] - 注意:如果使用cPanel的Python应用管理器部署,可能需要保留管理器自动生成的规则,只需删除WordPress相关的Rewrite规则即可。
- 直接替换主域名根目录下的
- 文档根目录未切换
- 确认cPanel中主域名的文档根目录已从WordPress的
public_html(或子目录)切换到Django应用的根目录(包含wsgi.py的目录)。
- 确认cPanel中主域名的文档根目录已从WordPress的
- 缓存残留
- 清理浏览器缓存,同时在cPanel中清除服务器缓存(如OPcache、Cloudflare缓存等),避免旧规则或页面被缓存。
额外检查项
- 重启cPanel中的Django应用,确保配置变更生效。
- 确认主域名的DNS解析已完全生效,没有指向旧站点的残留记录。
内容的提问来源于stack exchange,提问作者Ayodeji
相关产品推荐
相关产品推荐

