如何为网站配置重定向功能
1 何谓网站重定向
网站重定向是一种服务器响应技术,它允许网站管理员将用户从一个网页或域名重定向到另一个网页或域名。重定向可以通过服务器端或客户端实现,主要通过 HTTP 状态码来指示重定向的动作。例如 301 重定向是一种永久性重定向,表明旧地址的资源已被永久移动到新地址。
常见应用场景:
- 域名变更:网站更换域名时,用 301 重定向把旧域名的访问者引导到新域名,同时保持搜索引擎排名和链接权重;
- 网站结构优化:重构或改版后,把旧 URL 重定向到新的结构化页面;
- 页面迁移:页面移动到新位置后,把旧地址的访问者引导到新页面;
- 处理错误页面:自动把用户从错误页面转到正确页面,提升体验;
- 多版本网站管理:带 www 与不带 www 的版本通过 301 明确首选域,避免权重分散;
- 实施 SEO 策略:合理使用 301 可有效传递页面权重,避免改动造成权重损失。
2 网站重定向的好处
- 集中权重:把旧地址上的权重转移到新地址,有助于提高新页面的搜索排名;
- 提高用户体验:避免用户因 URL 变更或页面移动而遇到错误页面;
- 保持链接引用:已有外部链接通过重定向保持有效,不会失效;
- 避免重复内容:让搜索引擎只索引一个版本,避免重复内容带来的惩罚;
- 简化网站管理:合理的重定向策略可简化大型站点的维护工作。
3 重定向配置
在 location 中把 type 设为 rewrite,并用 rewrite 指定目标地址:
{
"listen": 7000,
"server_name": "localhost",
"location": [
{
"url": "/api1",
"type": "rewrite",
"rewrite": "http://xxxx.com"
}
]
}
| 配置项 | 说明 |
|---|---|
listen | 服务器监听的端口 |
server_name | 该站点配置的域名 |
url | 满足的请求路径应匹配的正则表达式 |
type | 设为 rewrite 表示启用重定向 |
rewrite | 重定向的目标地址 |
4 案例:HTTP 自动跳转 HTTPS
{
"http": {
"server": [
{
"listen": 80,
"server_name": "xxxx.com",
"location": [
{
"url": "/",
"type": "rewrite",
"rewrite": "https://xxxx.com"
}
]
},
{
"listen": "443 ssl",
"server_name": "xxxx.com",
"ssl_certificate": "config/cert/localhost.pem",
"ssl_certificate_key": "config/cert/localhost-key.pem",
"location": [
{
"url": "/",
"type": "local",
"root": "./httpdoc/root",
"index": ["index.html", "index.htm"]
}
]
}
]
}
}
说明:
- 第一个
server块监听 80 端口,所有请求都rewrite到https://xxxx.com,即访问http://xxxx.com会自动跳转到加密地址; - 第二个
server块监听443 ssl,是对应 HTTPS 站点的实际配置; ssl_certificate与ssl_certificate_key是证书与私钥文件地址;root和index表示静态站点目录及默认首页。