温馨提示×

apache2在centos怎样重定向

小樊
42
2026-10-08 21:10:53
栏目: 智能运维

在 CentOS 上使用 Apache(httpd) 做重定向,常见有几种方式,下面按使用频率给你说明。


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

1. 开启 .htaccess 支持

编辑 Apache 配置文件(如 /etc/httpd/conf/httpd.conf):

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

然后重启 Apache:

systemctl restart httpd

2. 301 永久重定向(域名或路径)

在网站根目录创建或编辑 .htaccess:

# 旧页面重定向到新页面
Redirect 301 /old.html http://example.com/new.html

# 整个域名重定向
Redirect 301 / http://newdomain.com/

二、使用 mod_rewrite 重写规则(更灵活)

示例:所有 HTTP 跳转到 HTTPS

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

示例:带参数的 URL 重定向

RewriteEngine On
RewriteRule ^product/([0-9]+)$ /item.php?id=$1 [L]

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

编辑虚拟主机配置(如 /etc/httpd/conf.d/example.conf):

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

或修改 DocumentRoot 指向新目录。


四、域名整体重定向(www ↔ 非 www)

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

<VirtualHost *:80>
    ServerName www.example.com
    DocumentRoot /var/www/html
</VirtualHost>

五、常用命令

# 检查配置是否正确
httpd -t

# 重启 Apache
systemctl restart httpd

# 查看模块是否启用
httpd -M | grep rewrite

六、常见注意事项

  • 301 = 永久重定向(SEO 友好)
  • 302 = 临时重定向
  • 修改配置后一定要 重启或 reload Apache
  • SELinux 可能导致权限问题(可临时测试 setenforce 0)

如果你能告诉我:

  • CentOS 版本(6 / 7 / 8 / Stream)
  • Apache 版本
  • 具体重定向需求(域名 / HTTPS / 路径 / 正则)

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

0 踩