301 Moved Permanently:资源已永久移动到新位置。

301 Moved Permanently 是一种标准的 HTTP 状态代码,表示服务器告知客户端(例如浏览器或搜索引擎),请求的资源已永久移动到新的 URL 地址。客户端在收到此状态后,应自动使用新位置中的资源。
1. 301 Moved Permanently 的含义
永久重定向:
表示资源的原始地址(URL)已永久改变。
所有后续请求都应使用新的地址。
搜索引擎友好:
搜索引擎会更新索引,将旧地址的权重(如 SEO 排名)传递给新地址。
用户体验:
用户访问旧地址时会被自动重定向到新地址,无需手动操作。
2. 使用场景
2.1 网站域名更换
例如:从 http://old-domain.com 迁移到 http://new-domain.com。
通过
301 重定向将旧地址的流量重定向到新域名,避免流量损失。
2.2 URL 规范化
例如:
从
http://example.com重定向到https://example.com。将带
www的地址(www.example.com)重定向到不带www的地址(example.com)。
2.3 页面迁移
例如:将旧页面(/old-page.html)永久移动到新页面(/new-page.html)。
2.4 合并重复内容
当多个页面内容相似或重复时,通过 301 重定向将流量集中到一个页面,避免 SEO 权重分散。
3. 301 重定向的实现方法
3.1 在 Apache 中实现
编辑 .htaccess 文件:
单个页面重定向
apacheconf
复制
Redirect 301 /old-page.html https://example.com/new-page.html
整个站点重定向
apacheconf
复制
RewriteEngine On
RewriteCond %{HTTP_HOST} ^old-domain.com [NC]
RewriteRule ^(.*)$ https://new-domain.com/$1 [L,R=301]
3.2 在 Nginx 中实现
编辑 Nginx 配置文件:
单个页面重定向
nginx
复制
location /old-page.html {
rewrite ^/old-page.html https://example.com/new-page.html permanent;
}
整个站点重定向
nginx
复制
server {
listen 80;
server_name old-domain.com;
return 301 https://new-domain.com$request_uri;
}
3.3 在 HTML 中实现
通过 标签实现(不推荐用于 SEO):
html
复制
3.4 在 PHP 中实现
通过 PHP 代码实现:
php
复制
<?php
header("HTTP/1.1 301 Moved Permanently");
header("Location: https://example.com/new-page.html");
exit();
?>
4. 注意事项
4.1 确保重定向正确
检查是否存在 循环重定向(A → B → A)。
确保新页面提供与旧页面相关的内容,以保持用户体验。
4.2 更新内部和外部链接
更新站点内部的所有链接,直接指向新地址。
通知外部链接的管理员更新指向新地址的链接。
4.3 SEO 考虑
权重传递:301 会将旧页面的 SEO 权重传递到新页面。
抓取频率:搜索引擎可能需要一定时间更新索引,因此应尽早设置 301。
4.4 检查效果
使用以下工具检查是否正确实现了 301 重定向:
浏览器开发者工具:查看网络请求的状态码是否为
301。在线工具:Redirect Checker 检查重定向状态。
命令行工具:
bash
复制
curl -I http://old-domain.com
5. 301 重定向与其他状态代码的区别
状态码含义适用场景301 Moved Permanently资源永久移动到新地址,权重传递到新地址。域名迁移、永久 URL 变更。302 Found资源临时移动,新地址不传递权重。临时重定向、不影响旧地址的索引。307 Temporary Redirect临时重定向,且 HTTP 方法(GET/POST)保持不变。临时 URL 变更,确保方法一致。308 Permanent Redirect永久重定向,且 HTTP 方法保持不变(更严格的 301)。替代 301,确保方法一致。
6. 检查和测试工具
6.1 在线工具
6.2 浏览器开发者工具
打开开发者工具 → 网络(Network)选项 → 查看请求的状态码和重定向流程。
6.3 curl 命令
使用 curl 检查 HTTP 头信息:
bash
复制
curl -I http://old-domain.com
返回示例:
plaintext
复制
HTTP/1.1 301 Moved Permanently
Location: https://new-domain.com
7. 总结
301 Moved Permanently 是管理网站资源的重要工具,适用于:
域名迁移。
URL 规范化。
页面或站点结构调整。
通过正确配置 301 重定向,不仅可以确保用户的无缝体验,还能为搜索引擎提供明确的信号,传递 SEO 权重,提升网站的整体表现。在实施时,务必测试和优化重定向策略,以确保效果最佳。
