温馨提示×

apache2如何做重定向

小樊
38
2026-10-15 05:34:44
栏目: 编程语言

在 Apache2 中,常见的**重定向(Redirect)**方式有几种,取决于你的使用场景(整站跳转、单页面跳转、HTTP→HTTPS、带/不带 www 等)。下面按常见情况给你说明。


一、使用 .htaccess 做重定向(最常用)

1️⃣ 单页面重定向

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

2️⃣ 整个网站重定向到新域名

Redirect 301 / http://newdomain.com/

3️⃣ HTTP 强制跳转 HTTPS

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

4️⃣ 不带 www 跳转到带 www

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

5️⃣ 带 www 跳转到不带 www

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

二、在 Apache 虚拟主机配置中做重定向(推荐生产环境)

编辑:

/etc/apache2/sites-available/000-default.conf

示例:HTTP → HTTPS

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

修改后重启 Apache:

sudo systemctl restart apache2

三、常用重定向类型说明

类型 说明
Redirect 301 永久重定向(SEO 友好)
Redirect 302 临时重定向
RewriteRule 更灵活、可带条件

四、注意事项

  1. 启用 rewrite 模块
sudo a2enmod rewrite
sudo systemctl restart apache2
  1. AllowOverride 要开启
<Directory /var/www/html>
    AllowOverride All
</Directory>
  1. 301 会缓存,调试时建议先用 302

如果你能告诉我:

  • 是 整站 / 单页面
  • 是否 HTTPS
  • 是否 虚拟主机 / .htaccess

我可以给你更精准的配置示例。

0 踩