在服务器网站上做跳转页面跳转怎么配置最稳妥?老鸟避坑指南

在服务器网站上做跳转页面跳转怎么配置最稳妥?老鸟避坑指南

本文关键词:在服务器网站上做跳转页面跳转

很多刚入手服务器的兄弟,遇到域名解析没问题,但访问直接报错或者显示默认页,心里肯定慌。

其实大部分情况不是服务器坏了,而是你没做对跳转,或者配置文件写错了。

这篇不整虚的,直接告诉你怎么在服务器端把访问重定向到新链接,或者把裸域跳www,或者把http跳https。

别去网上抄那些复杂的代码,容易出bug,咱们用Nginx和Apache这两种最主流的配置来说事。

先说Nginx,这是目前用得最多的,因为快且稳。

你在宝塔面板或者直接用SSH连上去,找到网站配置文件。

通常是在 /etc/nginx/conf.d/ 或者 sites-available 目录下。

打开对应的 .conf 文件,你会看到 server 块。

如果你想做301永久跳转,代码其实就几行。

比如你想把 old.com 跳转到 new.com。

在 server 块里加这么一段:

return 301 https://new.com$request_uri;

注意,这里一定要写全,包括https和$request_uri。

很多人只写域名,结果子页面全丢了,变成首页,这就尴尬了。

还有,别忘记加 server_name old.com;

不然Nginx不知道这个跳转是针对哪个域名的。

改完配置,千万别直接重启,先测试一下语法。

输入 nginx -t

如果显示 syntax is ok,再 reload 或者 restart。

这一步很关键,很多人跳过,结果服务器直接挂,连后台都进不去,修起来麻烦得要死。

再说说Apache用户,虽然少了点,但也不少。

Apache主要靠 .htaccess 文件或者 httpd.conf。

如果你用的是虚拟主机,通常有权限编辑 .htaccess。

在里面加这么几行:

RewriteEngine On

RewriteCond %{HTTP_HOST} ^old.com [NC]

RewriteRule ^(.*)$ https://new.com/$1 [R=301,L]

这里有个坑,NC是不区分大小写,L是最后一条规则。

很多新手忘记写 L,导致规则循环或者不生效。

还有,RewriteCond 里的域名,别加 http://,只写域名本身。

如果你是在服务器全局配置里改,那就得动 httpd.conf 或者 apache2.conf。

这时候权限要求高,一般不建议小白动全局,容易把整个服务器搞崩。

还有一种情况,是https证书没配好,导致跳转失败。

这时候浏览器会报红,用户根本进不去。

所以在做跳转前,先确保你的SSL证书是有效的,且绑定正确。

有时候你做了跳转,但用户还是能访问http,这是因为你没强制跳转。

在Nginx里,可以加一个 server 块专门监听80端口,然后 return 301 https://...

这样所有http请求都会被强制转成https,安全又规范。

这里提一嘴,301和302的区别。

301是永久跳转,权重会传递,搜索引擎喜欢。

302是临时跳转,权重不传递。

如果你是要换域名,或者改版网站,一定要用301。

别图省事用302,不然SEO权重全散,排名掉得你怀疑人生。

另外,跳转后的页面,最好做个简单的提示,告诉用户“正在跳转”,虽然技术上是瞬间的,但用户心理需要个缓冲。

当然,这主要是前端的事,服务器端只管头。

最后,测试跳转是否成功,别光靠肉眼。

用 curl -I http://old.com 命令,看返回头里有没有 Location: https://new.com。

如果有,且状态码是301,那就成了。

如果返回200,说明没跳转,或者跳转配置没生效。

这时候检查配置文件语法,检查权限,检查SELinux(如果是CentOS)。

SELinux经常拦着Nginx,导致配置改了不生效,这是个大坑。

临时可以 setenforce 0 测试一下,如果是这个问题,记得永久关闭或者配置策略。

总之,在服务器网站上做跳转页面跳转,看似简单,细节全是坑。

配置文件写错一个符号,整个网站就废了。

所以备份!备份!备份!

改配置前,把原来的文件拷一份出来。

万一搞砸了,还能一键还原,不至于手忙脚乱。

希望这些经验能帮你少踩点坑,毕竟服务器这东西,稳定第一,花哨第二。

有问题多查官方文档,别轻信那些过时的教程,版本不同,配置语法可能都不一样。

做好这些,你的跳转就能稳稳当当,用户和搜索引擎都挑不出毛病。

最新新闻

日新闻

周新闻

月新闻