温馨提示×

ubuntu apache如何设置301跳转

小樊
43
2026-09-17 09:24:43
栏目: 智能运维

在 Ubuntu 上使用 Apache 设置 301 永久重定向(跳转),通常有以下几种常见方式。下面按最常用、最推荐的顺序说明。


一、使用 Apache 配置文件(推荐,作用于整个站点/目录)

1. 启用 rewrite 模块

sudo a2enmod rewrite
sudo systemctl restart apache2

2. 修改虚拟主机配置

编辑站点配置文件(示例):

sudo nano /etc/apache2/sites-available/example.com.conf

示例 1:旧域名 → 新域名

<VirtualHost *:80>
    ServerName old.com
    Redirect 301 / https://new.com/
</VirtualHost>

示例 2:http → https

<VirtualHost *:80>
    ServerName example.com
    Redirect 301 / https://example.com/
</VirtualHost>

示例 3:单个页面跳转

Redirect 301 /old.html https://example.com/new.html

保存后:

sudo systemctl restart apache2

优点:稳定、性能好、不依赖 .htaccess


二、使用 .htaccess(适合共享主机 / 不想改主配置)

1. 允许 .htaccess 生效

在虚拟主机中确保有:

<Directory /var/www/html>
    AllowOverride All
</Directory>

然后重启 Apache。

2. 编辑 .htaccess

nano /var/www/html/.htaccess

示例 1:整站 http → https

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]

示例 2:旧页面 → 新页面

RewriteEngine On
RewriteRule ^old.html$ https://example.com/new.html [R=301,L]

示例 3:不带 www → 带 www

RewriteEngine On
RewriteCond %{HTTP_HOST} ^example.com$
RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L]

三、常用 301 场景总结

场景 方法
域名更换 Redirect 301
http → https Redirect 301 / rewrite
带 www ↔ 不带 www rewrite
单个 URL 变更 Redirect 301

四、验证 301 是否生效

curl -I http://old.com

应看到:

HTTP/1.1 301 Moved Permanently
Location: https://new.com/

如果你能说明 具体跳转场景(如域名变更、http 转 https、某路径跳转),我可以给你更精确的配置。

0