在 CentOS 下,Apache 的重定向一般通过 mod_alias、mod_rewrite 或 虚拟主机配置 来实现。下面按常见场景说明。
sudo yum install httpd
sudo systemctl start httpd
sudo systemctl enable httpd
httpd -M | grep rewrite
应看到:
rewrite_module (shared)
如需启用:
sudo vi /etc/httpd/conf.modules.d/00-base.conf
确保有:
LoadModule rewrite_module modules/mod_rewrite.so
编辑虚拟主机或主配置:
<VirtualHost *:80>
ServerName old.example.com
Redirect 301 / http://new.example.com/
</VirtualHost>
Redirect 301 /old.html http://example.com/new.html
301 永久重定向
302 临时重定向
<Directory "/var/www/html">
AllowOverride All
</Directory>
.htaccess# 开启重写
RewriteEngine On
# 旧页面到新页面
RewriteRule ^old.html$ http://example.com/new.html [R=301,L]
sudo systemctl restart httpd
<VirtualHost *:80>
ServerName old.com
RewriteEngine On
RewriteRule ^/(.*)$ http://new.com/$1 [R=301,L]
</VirtualHost>
<VirtualHost *:80>
ServerName example.com
RewriteEngine On
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</VirtualHost>
/etc/httpd/conf/httpd.conf/etc/httpd/conf.d/*.conf/var/www/html修改后务必:
sudo systemctl restart httpd
AllowOverridetail -f /var/log/httpd/error_log
.htaccess 语法错误如果你能说明 具体重定向需求(如:域名跳转、HTTP转HTTPS、旧路径到新路径),我可以给你一份可直接用的配置。