做网站的时候经常会遇到更换域名、调整页面URL结构的需求,为了把旧网址的流量和SEO权重转移到新网址,都需要配置301永久重定向跳转。很多刚接触网站运维的新手,不知道不同服务器环境下301跳转代码该怎么写,也分不清整站跳转和单页跳转的写法区别,今天就把常见场景下可直接套用的写法整理出来,你照着修改就能用。

先搞清楚:什么时候需要写301跳转代码
301跳转是HTTP状态码的一种,表示页面被永久移动到了新地址,搜索引擎会把旧页面的权重传递到新页面,同时访客访问旧地址会自动跳转到新地址。常见需要用301跳转的场景包括:更换网站域名、把不带www的域名跳转到带www的版本(或者反过来)、调整单篇文章的URL地址、删除旧页面需要引导到相关新页面等。错误的跳转配置不仅会丢失权重,还会让访客打不开页面,所以写法一定要正确。
Apache环境:用.htaccess写301跳转
使用Apache服务器的用户,大多可以直接在网站根目录的`.htaccess`文件里添加跳转代码,不需要修改服务器主配置,操作很方便。如果根目录没有这个文件,可以新建一个纯文本文件命名为`.htaccess`。单页跳转的写法是:`Redirect 301 /old-page.html https://www.yourdomain.com/new-page.html`,把旧路径和新地址换成你自己的就可以。整站跳转把所有旧域名页面跳转到新域名对应页面的写法是:`RewriteEngine On
RewriteCond %{HTTP_HOST} ^olddomain.com [NC]
RewriteRule ^(.*)$ https://newdomain.com/$1 [L,R=301]`,替换域名就能直接用。
Nginx环境:在配置文件里添加跳转代码
Nginx服务器的301跳转需要写在站点配置文件里,一般路径是`/etc/nginx/sites-available/你的域名.conf`,找到server块添加规则就可以。需要把不带www跳转到带www的写法是:`server {
listen 80;
server_name yourdomain.com;
return 301 https://www.yourdomain.com$request_uri;
}`。整站跳转到新域名的写法也很简单,把原来的旧域名server块里改成`return 301 https://newdomain.com$request_uri;`就可以,添加完代码别忘记执行`nginx -t`检查配置是否正确,没问题再执行`systemctl reload nginx`重载配置让规则生效。
整站从HTTP跳转到HTTPS怎么写
现在大多数网站都用HTTPS了,把HTTP访问跳转到HTTPS是很常见的需求,不同环境写法也不一样。Apache环境在`.htaccess`里添加:`RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]`。Nginx环境则是在原来的80端口server块里添加:`return 301 https://$host$request_uri;`就可以实现全部跳转,这种写法比rewrite更简洁高效,不容易出错。
IIS环境下怎么设置301跳转
使用Windows服务器的IIS环境,设置301跳转可以通过界面操作,不需要手动写代码,当然也可以手动配置。操作步骤是:打开IIS管理器,找到你的站点,双击「HTTP重定向」模块,勾选「将请求重定向到此目标」,输入你的目标网址,勾选「永久的(状态代码301)」,点击保存就完成了。如果是单个页面跳转,也可以右键点击对应页面,选择「属性」-「重定向」,按提示设置就可以,对于不熟悉代码的新手来说,IIS的图形化操作比改配置文件更友好。
PHP单文件301跳转怎么写
有时候你只需要给单个PHP页面做301跳转,不需要改服务器配置,这种情况直接在PHP文件开头写代码就行。写法非常简单:`<?php
header(“HTTP/1.1 301 Moved Permanently”);
header(“Location: https://yourdomain.com/new-page.php”);
exit();
?>`,把目标地址换成你的新地址就可以,这个方法不用修改任何服务器配置,适合单个页面跳转的场景,操作起来非常方便,对服务器环境也没有要求。
配置完301跳转后要做什么检查
写完代码或者配置完跳转之后,一定要自己测试一下有没有问题。首先用浏览器访问旧地址,看是不是能正确跳转到新地址,然后检查HTTP状态码,可以用在线的HTTP状态查询工具,确认返回的是301状态码而不是302或者其他错误码,还要检查内链是不是都已经换成新地址了,不要让旧内链还停留在原来的旧地址,这样会影响搜索引擎爬取和权重传递,测试确认都没问题了才算配置完成。
总的来说,301跳转代码写法并不复杂,核心就是根据你自己用的服务器环境选对对应的写法,不管是整站跳转还是单页跳转,规则都很简单,只要照着上面的模板替换成你自己的域名和路径就可以,配置完别忘记检查状态码确认生效,这样就能顺利完成跳转,保住你的网站SEO权重。
【版权声明】:本站内容若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!