You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Apache mod Rewrite配置需求:仅替换域名并移除原有路径

Apache mod_rewrite 旧域名全路径重定向到新域名(移除路径)解决方案

问题根源

之前的重定向规则之所以会保留原有路径,核心原因是规则中引用了%{REQUEST_URI}或捕获的路径变量(比如$1)并将其追加到了新域名之后,导致旧路径被带过去。

正确配置方案

情况1:使用.htaccess文件配置(需确保站点目录允许Override)

先确认Apache已启用mod_rewrite模块,然后在旧域名对应的网站根目录(或.htaccess生效的目录)中添加以下规则:

RewriteEngine On

# 匹配旧域名的HTTP/HTTPS请求,不区分大小写
RewriteCond %{HTTP_HOST} ^www\.olddomain\.com$ [NC]
# 强制重定向到新域名根目录,丢弃所有原有路径
RewriteRule ^(.*)$ https://www.thenewdomain.net/ [R=301,L]

情况2:在Apache主配置/虚拟主机配置中修改

直接针对旧域名的虚拟主机配置规则,更高效且无需.htaccess:

# 处理HTTP请求
<VirtualHost *:80>
    ServerName www.olddomain.com
    RewriteEngine On
    RewriteRule ^(.*)$ https://www.thenewdomain.net/ [R=301,L]
</VirtualHost>

# 处理HTTPS请求(需保留原有SSL证书配置)
<VirtualHost *:443>
    ServerName www.olddomain.com
    SSLCertificateFile /path/to/your/cert.pem
    SSLCertificateKeyFile /path/to/your/key.pem
    # 其他SSL相关配置...
    
    RewriteEngine On
    RewriteRule ^(.*)$ https://www.thenewdomain.net/ [R=301,L]
</VirtualHost>

规则说明

  • RewriteEngine On:开启重写引擎
  • RewriteCond %{HTTP_HOST} ^www\.olddomain\.com$ [NC]:精准匹配旧域名,[NC]表示忽略大小写(兼容WWW.OLDDOMAIN.COM这类请求)
  • RewriteRule ^(.*)$ https://www.thenewdomain.net/ [R=301,L]:^(.*)$匹配任意请求路径,直接重定向到新域名的根目录;R=301是永久重定向(适合长期替换域名,搜索引擎会更新索引),若只是临时过渡可改为R=302;L表示执行完这条规则后停止后续重写匹配

验证方法

用curl命令测试重定向结果:

curl -I https://www.olddomain.com/sub/directories/to/live/web/dir/some-page.html

查看返回的Location头,应为https://www.thenewdomain.net/,且无原有路径。

内容的提问来源于stack exchange,提问作者P D

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 01:50:00