好的,我们直接看具体配置和跳出率之间的关系。
301重定向的服务器端配置
301是HTTP状态码,表示资源被永久移动到新位置。搜索引擎看到301,会把旧URL的权重、外链、索引信号全部传递到新URL。配置正确,排名不会掉;配置错误,流量直接归零。
Apache服务器配置
在网站根目录找到 `.htaccess` 文件,没有就新建一个。以下是常用规则:
单页面重定向
Redirect 301 /old-page.html https://www.example.com/new-page.html
整个目录重定向
RedirectMatch 301 ^/old-directory/(.*)$ /new-directory/$1
非www跳转到www(带https)
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example.com [NC]
RewriteRule ^(.*)$ https://www.example.com/$1 [L,R=301]
http跳转https
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
注意:`RewriteEngine On` 只需要在文件顶部写一次。规则从上到下匹配,一旦匹配成功就停止,所以要把精确匹配放在前面,通配规则放后面。
Nginx服务器配置
修改站点对应的 `.conf` 文件,通常在 `/etc/nginx/sites-available/` 目录下。
单页面重定向
location /old-page.html {
return 301 https://www.example.com/new-page.html;
}
目录重定向
location /old-directory/ {
return 301 https://www.example.com/new-directory/;
}
非www跳转www
server {
listen 80;
server_name example.com;
return 301 https://www.example.com$request_uri;
}
http跳转https
server {
listen 80;
server_name www.example.com;
return 301 https://$server_name$request_uri;
}
修改完执行 `nginx -t` 检查语法,然后 `nginx -s reload` 重载配置。
测试重定向是否生效
别用浏览器直接看,浏览器有缓存,可能显示的是旧结果。用命令行工具:
curl -I https://www.example.com/old-page.html
返回结果第一行应该是 `HTTP/1.1 301 Moved Permanently`,然后看 `Location:` 字段指向的目标URL是否正确。
也可以用 `--location` 参数跟踪完整跳转链:
curl -I -L https://www.example.com/old-page.html
如果跳转链超过5次,浏览器和搜索引擎都会放弃,直接返回错误。这种情况叫重定向循环,需要检查规则是否互相冲突。
302重定向和JavaScript重