因为云主机通常提供的是纯净的操作系统(如 Linux),你需要通过配置 Web 服务器软件来实现,下面我将分别介绍两种最主流的 Web 服务器:Nginx 和Apache 的配置方法。
301 重定向:表示“永久移动”,它会告诉搜索引擎和浏览器,某个URL已经永久地转移到了另一个URL,并将权重和流量传递到新地址。
方法一:在 Nginx 上配置 301 重定向
Nginx 的配置文件通常位于/etc/nginx/nginx.conf
或/etc/nginx/sites-available/
目录下你的网站配置文件中。
假设你想把old-domain.com
全部重定向到new-domain.com
。
1、使用 SSH 登录你的云主机。
2、编辑你的 Nginx 网站配置文件(/etc/nginx/sites-available/your-site
)。
3、添加一个新的 Server 块 来监听旧域名,并执行重定向。
server { listen 80; listen [::]:80; server_name old-domain.com www.old-domain.com; # 要重定向的旧域名 # 301 永久重定向到新域名的主页 return 301 http://new-domain.com$request_uri; # 如果新站点使用 HTTPS,则写: # return 301 https://new-domain.com$request_uri; } server { listen 80; # ... 其他配置 ... server_name new-domain.com www.new-domain.com; # 这是你新网站的正常配置 # ... 网站的正常配置(root, index等)... }
return 301
直接返回 301 状态码并进行重定向。
$request_uri
这是一个 Nginx 变量,它会保留原始请求的 URI(即域名后面的路径和参数),这样old-domain.com/some/page.html
就会被重定向到new-domain.com/some/page.html
,而不仅仅是首页。
假设你想把/old-page.html
重定向到/new-page.html
。
在你正常的server
块配置中添加一个location
规则:
server { listen 80; server_name your-domain.com; # 网站的正常配置... root /var/www/html; index index.html; # 单页重定向 location = /old-page.html { return 301 /new-page.html; } # 或者路径前缀重定向 location /old-blog/ { return 301 /blog/$request_uri; } }
4、保存文件并退出。
5、测试 Nginx 配置是否正确:
sudo nginx -t
如果显示syntax is ok
和test is successful
,则说明配置正确。
6、重新加载 Nginx 使配置生效:
sudo systemctl reload nginx
方法二:在 Apache 上配置 301 重定向
Apache 的配置文件通常是.htaccess
文件(需要开启AllowOverride
选项)或者主配置文件(如/etc/apache2/sites-available/000-default.conf
)。
使用.htaccess
文件(更常见)
1、使用 SSH 登录你的云主机。
2、在你网站根目录(如/var/www/html
)创建或编辑.htaccess
文件。
3、添加重定向规则。
RewriteEngine On RewriteCond %{HTTP_HOST} ^old-domain.com$ [OR] RewriteCond %{HTTP_HOST} ^www.old-domain.com$ RewriteRule (.*)$ http://new-domain.com/$1 [R=301,L]
Redirect 301 /old-page.html http://your-domain.com/new-page.html
或者使用 mod_rewrite 模块:
RewriteEngine On RewriteRule ^old-page.html$ new-page.html [R=301,L]
RewriteEngine On
开启重写引擎。
RewriteCond
定义重写条件,上面的例子是匹配域名。
RewriteRule
定义实际的重写规则。
[R=301,L]
R=301
表示发出 301 重定向,L
表示这是最后一条规则,不再处理后续规则。
Redirect 301
这是另一个更简单的指令,专门用于重定向。
4、保存文件。
5、确保 Apache 的mod_rewrite
模块已启用:
sudo a2enmod rewrite
6、重新加载 Apache 使配置生效:
sudo systemctl reload apache2
如果你的云主机上安装了宝塔面板,操作会非常简单,无需手动编辑配置文件。
1、 登录你的宝塔面板。
2、 进入你要管理的网站。
3、 点击网站列表右侧的设置按钮。
4、 在左侧菜单中选择重定向。
5、 填写重定向信息:
域名选择要重定向的旧域名(如果需要重定向整个域名)。
重定向类型选择301
。
重定向至填写完整的新 URL。
(可选)保留URI参数勾选后,会像$request_uri
一样保留路径和参数。
6、 点击保存即可,宝塔会自动为你修改 Nginx/Apache 的配置文件并重载服务。
1、备份:在修改任何服务器配置文件之前,务必备份!
2、清除浏览器缓存:测试时,浏览器可能会缓存 301 重定向,请使用无痕模式或强制刷新(Ctrl+F5)进行测试。
3、验证:使用在线 HTTP 状态码检查工具(如 [Redirect Checker](https://httpstatus.io/))或 curl 命令来验证:
curl -I http://your-old-domain.com/old-page
在返回的 HTTP 头中,你应该看到HTTP/1.1 301 Moved Permanently
和Location: https://your-new-domain.com/new-page
。
选择最适合你情况和熟悉程度的方法进行操作即可,对于云主机,最通用的方法是直接通过 SSH 修改 Nginx 或 Apache 的配置文件。
文章摘自:https://idc.huochengrm.cn/zj/14843.html
评论