在 apache 中更换域名时,通过配置 .htaccess 文件并添加 r=301 重定向规则,可以将旧域名的请求永久指向新域名,从而向搜索引擎传递页面已迁移的信号,保持 google 收录权重。具体做法是在虚拟主机或站点根目录的 .htaccess 中启用 mod_rewrite,匹配旧域名并返回 301 状态码跳转至新域名 url。这样做能让 google 爬虫识别出永久性变更,自动将旧域名的索引权重重定向到新域名,同时避免用户访问旧链接时的 404 错误。

如何配置 .htaccess 实现全站 301 重定向
要在 Apache 中实现从旧域名到新域名的 301 重定向,核心是修改站点根目录下的 .htaccess 文件。首先确保服务器启用了 mod_rewrite 模块,然后在文件中添加特定的重写规则。这些规则会检查请求的主机头(Host Header),如果匹配旧域名,就将请求永久重定向到对应的新域名路径。这种方法不仅适用于首页,还能保留子页面的结构,确保每个旧 URL 都映射到新域名的相同路径上。

# 启用重写引擎
RewriteEngine On
# 检查是否为旧域名
RewriteCond %{HTTP_HOST} ^old-example\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.old-example\.com$
# 执行 301 重定向到新域名,保留路径和查询字符串
RewriteRule ^(.*)$ https://new-example.com/$1 [R=301,L]
上述代码中,RewriteCond 用于匹配两种常见的旧域名格式:带 www 和不带 www 的情况。RewriteRule 中的 ^(.*)$ 捕获了原始请求的路径部分,并通过 $1 将其附加到新域名之后。[R=301,L] 标志表示发送 301 永久重定向状态码,并停止处理后续规则。将此配置部署后,当用户或爬虫访问 http://old-example.com/page 时,服务器会立即响应 301 状态,并将浏览器引导至 https://new-example.com/page。Google 爬虫在抓取时会接收到这个信号,从而更新其索引数据库,将权重转移至新域名。
如何处理特定子目录或文件的单独重定向
除了全站重定向,有时需要针对特定的旧目录或文件设置独立的 301 规则,例如将旧站点的某个专题页直接映射到新站点的不同位置。这种情况下,可以在 .htaccess 中添加更具体的 RewriteRule,精确匹配旧路径并将其指向新路径。这种细粒度的控制有助于优化用户体验,并确保重要内容在新域名下获得正确的索引位置。
通过 Gemini 搜索落地(主)和 Custom Search JSON API(备)进行 Google 网页搜索。用途:(1) 附引用的综合回答(落地搜索),(2) 含摘要的原始链接结果,(3) 图片搜索。希伯来语支持极佳。优于内置 web_search (Perplexity)。

# 启用重写引擎 RewriteEngine On # 将旧域名的特定目录重定向到新域名的不同路径 RewriteRule ^old-section/(.*)$ https://new-example.com/new-section/$1 [R=301,L]
在这段代码中,^old-section/(.*)$ 匹配以 old-section/ 开头的任何 URL 路径。例如,访问 http://old-example.com/old-section/article-1 会被重定向到 https://new-example.com/new-section/article-1。这种规则优先于全局重定向,因为 Apache 按顺序处理 .htaccess 中的规则。通过这种方式,可以灵活地调整网站结构变化带来的影响,确保关键页面在新域名下依然可被 Google 发现和收录。需要注意的是,规则应按从具体到通用的顺序排列,以避免冲突。
重定向后如何验证 Google 收录状态
完成 301 重定向配置后,需要验证 Google 是否正确识别了新域名的收录状态。可以通过 Google Search Console 提交新域名的站点地图,并监控“覆盖范围”报告中的重定向问题。此外,使用浏览器开发者工具或在线 HTTP 状态码检查工具,确认旧域名请求是否返回 301 状态码,以及响应头中是否包含正确的新 Location 地址。这一步骤确保重定向机制正常运行,避免因配置错误导致收录丢失。










