网站301跳转(重定向)怎么做?详细代码教程
“网站301跳转”又叫“301重定向”,是将一个页面重定向到另一个页面的一种页面跳转方式。本文将详细讲解如何做网站301跳转,并提供详细的代码教程。
对于网站seo来讲,301重定向是永久性重定向,对SEO友好,能将旧URL的权重传递给新URL。
下面我将提供一个完整的教程,包含多种实现方法。
什么是301重定向?
301重定向是HTTP协议中的一种状态码,表示”永久移动”。当服务器返回301状态码时,它告诉浏览器和搜索引擎:当前请求的资源已永久移动到新位置。这种重定向方式对SEO非常友好,因为它会将原始URL的权重和排名信号完全传递给新URL。
301重定向的主要应用场景
- 网站域名更换 – 将旧域名重定向到新域名
- URL结构优化 – 修改网站URL结构时保持链接价值
- HTTP到HTTPS迁移 – 将HTTP页面重定向到HTTPS版本
- 统一域名版本 – 将非www版本重定向到www版本,或反之
- 页面删除或合并 – 将已删除页面重定向到相关替代页面
各种服务器环境下的实现方法
1. Apache服务器(.htaccess文件)
Apache服务器通常使用.htaccess文件配置重定向规则:
# 启用重写引擎
RewriteEngine On
# 重定向单个页面
Redirect 301 /old-page.html https://example.com/new-page.html
# 使用RewriteRule重定向
RewriteRule ^old-page\.html$ https://example.com/new-page.html [R=301,L]
# 重定向整个目录
RedirectMatch 301 ^/old-dir/(.*)$ https://example.com/new-dir/$1
# 重定向非www到www版本
RewriteCond %{HTTP_HOST} ^example\.com [NC]
RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L]
# 重定向HTTP到HTTPS
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]2. Nginx服务器配置
在Nginx配置文件中添加重定向规则:
# 重定向单个页面
server {
    listen 80;
    server_name example.com;
    
    location /old-page.html {
        return 301 https://example.com/new-page.html;
    }
}
# 重定向整个域名
server {
    listen 80;
    server_name old-domain.com;
    return 301 https://new-domain.com$request_uri;
}
# 重定向HTTP到HTTPS
server {
    listen 80;
    server_name example.com www.example.com;
    return 301 https://example.com$request_uri;
}
# 重定向非www到www
server {
    listen 80;
    server_name example.com;
    return 301 https://www.example.com$request_uri;
}3. PHP实现方法
在PHP文件顶部添加重定向代码:
<?php
// 301重定向到新URL
header("HTTP/1.1 301 Moved Permanently");
header("Location: https://example.com/new-page.html");
exit();
?>4. 其他编程语言示例
Node.js/Express:
app.get('/old-page', function(req, res) {
    res.redirect(301, '/new-page');
});ASP.NET:
// 在Global.asax中
Response.Status = "301 Moved Permanently";
Response.AddHeader("Location", "https://example.com/new-page");301重定向的最佳实践
1. 保持重定向链简洁
避免创建长重定向链(A→B→C),尽量使用直接重定向(A→C)。
2. 测试重定向效果
实施重向后,使用以下工具验证:
- 浏览器开发者工具(网络选项卡)
- 在线HTTP状态码检查工具
- curl命令:curl -I https://example.com/old-page
3. 更新内部链接
重定向实施后,及时更新网站内部的链接指向新URL。
4. 提交更新的网站地图
向搜索引擎提交更新后的网站地图,加速新URL的收录。
5. 监控搜索引擎索引
使用Google Search Console等工具监控旧URL的索引状态和新URL的收录情况。
常见问题与解决方案
问题1:重定向循环
症状:浏览器显示”重定向次数过多”错误。
解决方案:
- 检查重定向规则是否存在循环引用
- 确保重定向目标不是另一个重定向的源
- 在.htaccess中使用L标志终止后续规则处理
问题2:重定向后参数丢失
解决方案:
- 在重定向规则中保留查询参数:
RewriteRule ^old-page\.html$ /new-page.html? [R=301,L]问题3:重定向性能问题
解决方案:
- 尽量减少重定向链长度
- 在服务器层面配置重定向(而非通过JavaScript或meta refresh)
- 对Nginx服务器,使用return指令比rewrite性能更好
301 vs 302重定向的区别
| 特性 | 301重定向 | 302重定向 | 
|---|---|---|
| 类型 | 永久重定向 | 临时重定向 | 
| SEO影响 | 传递权重 | 不传递权重 | 
| 浏览器缓存 | 会缓存 | 通常不缓存 | 
| 使用场景 | 永久性URL变更 | 临时维护、A/B测试 | 
实施前的检查清单
- [ ] 备份原始配置文件
- [ ] 在测试环境验证重定向规则
- [ ] 确保新URL可正常访问
- [ ] 检查重定向是否返回正确的301状态码
- [ ] 验证查询参数是否正确传递
- [ ] 更新网站地图和内部链接
- [ ] 设置监控和错误跟踪
总结
301重定向是网站管理和SEO优化中的重要技术,正确实施可以确保网站在URL结构变更时保持搜索引擎排名和用户体验。选择适合您服务器环境的实现方法,遵循最佳实践,并在实施前后进行充分测试,可以最大限度地减少对网站流量的影响。