在 CentOS 上使用 Apache(httpd) 做重定向,常见有几种方式,下面按使用频率给你说明。
.htaccess 重定向(最常见).htaccess 支持编辑 Apache 配置文件(如 /etc/httpd/conf/httpd.conf):
<Directory "/var/www/html">
AllowOverride All
</Directory>
然后重启 Apache:
systemctl restart httpd
在网站根目录创建或编辑 .htaccess:
# 旧页面重定向到新页面
Redirect 301 /old.html http://example.com/new.html
# 整个域名重定向
Redirect 301 / http://newdomain.com/
mod_rewrite 重写规则(更灵活)RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteEngine On
RewriteRule ^product/([0-9]+)$ /item.php?id=$1 [L]
编辑虚拟主机配置(如 /etc/httpd/conf.d/example.conf):
<VirtualHost *:80>
ServerName example.com
Redirect 301 / http://www.example.com/
</VirtualHost>
或修改 DocumentRoot 指向新目录。
<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
setenforce 0)如果你能告诉我:
我可以给你更精确的配置示例。