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

Django实现旧路径重定向至子域名以保留SEO

Django博客路径迁移后的重定向方案及服务器配置选择

一、Django内部配置301永久重定向

保留旧URL路由规则,通过视图返回永久重定向响应,确保搜索引擎识别为永久地址变更:

  1. 在主域名项目的urls.py中添加重定向逻辑:
from django.shortcuts import redirect
from django.urls import path

def blog_redirect(request, path):
    return redirect(f"https://blog.codewithbishal.com/{path}", permanent=True)

urlpatterns = [
    # 原有业务路由
    # ...
    # 匹配所有旧博客路径
    path('example/<path:path>', blog_redirect),
]
  • permanent=True是核心,它会发送301状态码,告知搜索引擎这是永久迁移,会将旧链接的权重转移至新链接。

二、Apache .htaccess配置重定向

若服务器使用Apache,可在主域名根目录的.htaccess文件中添加重写规则,在请求到达Django前完成跳转:

RewriteEngine On
RewriteRule ^example/(.*)$ https://blog.codewithbishal.com/$1 [R=301,L]
  • R=301指定永久重定向,L表示执行完该规则后停止后续匹配,避免规则冲突。

三、两种方案的选择建议

  • 优先选Django内部配置:如果后续需要针对特定路径调整重定向逻辑(比如部分旧路径无需跳转),或团队更熟悉Django开发流程,这种方式更灵活,无需修改服务器配置,维护成本低。
  • 选Apache .htaccess:若希望减少Django的请求负载,或重定向逻辑为全局固定规则,服务器层面的重定向效率更高,请求无需进入Django应用即可完成跳转。

从SEO角度看,只要是标准的301永久重定向,两种方案效果完全一致,都能保留原有权重并引导搜索引擎将索引更新为新链接。

额外注意事项

  • 必须使用301重定向,禁止使用302临时重定向,否则搜索引擎不会更新索引。
  • 测试所有旧路径,确保跳转后对应正确的新内容,避免出现404或错误跳转。
  • 可在谷歌搜索控制台提交新站点地图,加速搜索引擎对新链接的索引更新。

内容的提问来源于stack exchange,提问作者Code With Bishal

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 19:25:41