在 CentOS 上通过 Apache 实现“跳转”(重定向),常见有几种场景和做法。下面按最常用方式给你说明,基本都能覆盖 90% 需求。
.htaccess 实现跳转(最常用).htaccess 支持编辑虚拟主机或主配置:
vi /etc/httpd/conf/httpd.conf
找到你的网站目录,类似:
<Directory "/var/www/html">
AllowOverride None
</Directory>
改成:
AllowOverride All
然后重启 Apache:
systemctl restart httpd
例如:
http://old.com → http://new.com
在网站根目录创建 .htaccess:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^old.com$ [NC]
RewriteRule ^(.*)$ http://new.com/$1 [R=301,L]
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
Redirect 301 /old.html http://example.com/new.html
编辑虚拟主机配置文件:
vi /etc/httpd/conf.d/example.conf
<VirtualHost *:80>
ServerName example.com
Redirect permanent / https://example.com/
</VirtualHost>
<VirtualHost *:80>
ServerName old.com
Redirect permanent / http://new.com/
</VirtualHost>
重启 Apache:
systemctl restart httpd
mod_alias(简单跳转)适合简单需求:
Redirect 301 / http://newdomain.com/
| 类型 | 说明 |
|---|---|
| 301 | 永久跳转(SEO 友好) |
| 302 | 临时跳转 |
| Rewrite | 灵活、可带条件 |
| Redirect | 简单、直接 |
httpd -M | grep rewrite
如果你能告诉我:
我可以直接给你可用的完整配置。