云主机如何做301重定向?

HCRM技术_小炮 云主机 2025-09-04 3 0

因为云主机通常提供的是纯净的操作系统(如 Linux),你需要通过配置 Web 服务器软件来实现,下面我将分别介绍两种最主流的 Web 服务器:NginxApache 的配置方法。

核心概念

云主机怎么做301

301 重定向:表示“永久移动”,它会告诉搜索引擎和浏览器,某个URL已经永久地转移到了另一个URL,并将权重和流量传递到新地址。

方法一:在 Nginx 上配置 301 重定向

Nginx 的配置文件通常位于/etc/nginx/nginx.conf/etc/nginx/sites-available/ 目录下你的网站配置文件中。

场景1:整个站点重定向(如域名更换)

假设你想把old-domain.com 全部重定向到new-domain.com

1、使用 SSH 登录你的云主机

云主机怎么做301

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,而不仅仅是首页。

场景2:单页重定向或路径变更

假设你想把/old-page.html 重定向到/new-page.html

云主机怎么做301

在你正常的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 oktest 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、添加重定向规则

场景1:整个站点重定向

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]

场景2:单页重定向

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 PermanentlyLocation: https://your-new-domain.com/new-page

选择最适合你情况和熟悉程度的方法进行操作即可,对于云主机,最通用的方法是直接通过 SSH 修改 Nginx 或 Apache 的配置文件。

文章摘自:https://idc.huochengrm.cn/zj/14843.html

评论