宝塔面板怎么设置 URL 跳转
照着做完,你能在宝塔面板里给网站加上任意 URL 跳转(整站换域名、单页跳新地址、不带 www 跳到带 www),并且知道跳转不生效时该去哪里查。
第一步:找到重定向入口
这一步要做的,是在面板里打开目标站点的重定向管理页,后面所有操作都在这里完成。
登录宝塔面板(本文以 8.x / 9.x 为例),左侧菜单点「网站」,在站点列表里找到你的域名,点该行右侧的「设置」。弹出的站点设置窗口左侧有一列菜单:域名管理、子目录绑定、网站目录、伪静态、重定向、反向代理、SSL、配置文件……点「重定向」,右侧就是重定向规则列表,默认是空的。
注意:宝塔 7.x 的入口是「网站」→ 站点右侧「设置」→ 顶部标签「重定向」,菜单位置不同但字段一样。如果你用的是第三方面板或纯 Nginx 主机,本文的面板部分不适用。
第二步:做整站换域名的跳转
这一步要做的,是让旧域名的所有页面自动跳到新域名,做完后访问 old.com/任意路径 都会落到 new.com 的对应路径。
在重定向页面点「添加重定向」,弹窗里:
- 「重定向类型」选 域名;
- 「源域名」填旧域名,例如
old.com(不要带 http://); - 「目标域名」填新域名,例如
new.com(同样不带协议头); - 「重定向方式」选 301;
- 「保留URI参数」选 是。
点「提交」。此时访问 http://old.com/about.html 会跳到 http://new.com/about.html,路径原样保留。
注意:301 是永久跳转,浏览器和搜索引擎会长期缓存。规则还没测好之前,建议先选 302 临时跳转,确认无误再改回 301——改错 301 后自己浏览器可能一直跳,要用无痕窗口或清缓存才能验证。
第三步:做单条路径的跳转
这一步要做的,是把某个具体页面或目录指到新地址,效果是只有匹配到的路径才跳。
同样点「添加重定向」,这次「重定向类型」选 路径:
- 「源路径」填
/old-page.html(以斜杠开头,不带域名); - 「目标路径」填
/new-page.html,也可以填完整的https://其它域名/xxx; - 「重定向方式」按需选 301 或 302。
如果想让整个老目录跳走,源路径填 /old,目标路径填 /new,宝塔会按前缀匹配处理。
注意:源路径写成了
old-page.html(漏掉开头的/)是最常见的失败原因,规则会保存成功但永远匹配不上。
第四步:用配置文件写更复杂的跳转
这一步要做的,是绕过面板表单,直接写 Nginx 规则,适合带正则、带参数、多条件的情况。
还是在站点「设置」窗口,点左侧「配置文件」,找到 server { ... } 块,在 location 之外或某个 location 内部加入规则,然后点右下角「保存」,宝塔会自动执行 nginx -t 检查并重载。
rewrite ^/old/(.*)$ https://new.com/new/$1 permanent;
# 精确跳转单个地址,不保留查询参数
location = /legacy {
return 301 https://new.com/;
}
permanent 对应 301,redirect 对应 302。
注意:面板的「重定向」功能生成的规则,实际写在
/www/server/panel/vhost/rewrite/你的域名.conf这个文件里,它和「伪静态」共用同一个文件。所以切到别的伪静态模板后,回头确认一下之前加的重定向规则还在不在,必要时重新添加。
第五步:验证跳转是否生效
这一步要做的,是用命令行确认返回码和跳转目标都对。
curl -I http://old.com/about.html
看到 HTTP/1.1 301 Moved Permanently 和一行 Location: http://new.com/about.html 就算成功。302 则显示 302 Found。也可以直接用浏览器无痕窗口访问,按 F12 打开「网络」面板,看第一条请求的状态码。
如果没跳:先检查站点设置里「SSL」页的「强制HTTPS」是否把 http 请求先拦了一步;再确认域名是否套了 CDN,CDN 缓存的重定向规则可能比源站旧;最后确认服务器上确实没有另一条 rewrite 规则先匹配上了。
小结
- 面板入口:网站 → 站点「设置」→ 重定向,域名级换站和单路径跳转都在这里加。
- 301 永久、302 临时;没测好之前先用 302,避免浏览器缓存把错误规则固化。
- 源路径必须以
/开头且不带域名,否则规则不生效。 - 复杂规则写进「配置文件」的 Nginx 段,
permanent=301,redirect=302。 - 面板重定向与伪静态共用
vhost/rewrite/域名.conf,切换伪静态模板后要复查规则。 - 验证用
curl -I看状态码和 Location,再排查 SSL 强制跳转、CDN 缓存、规则冲突。
原文链接:https://www.gj0.com/thread-1004.html
转载请注明出处并保留本声明;内容仅代表作者观点,与本站立场无关。若本文涉嫌侵权,请联系本站处理。