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

Apache虚拟主机配置:将主域名下特定目录链接重定向至子域名

Apache虚拟主机配置:将主域名下特定目录链接重定向至子域名

我来帮你搞定这个重定向需求!根据你描述的场景,咱们可以写一套更通用的Rewrite规则,既能覆盖你提到的所有旧链接模式,也能兼容带elem查询参数的情况,不用单独维护两套规则。

首先提醒下:Bitnami WordPress的虚拟主机配置文件通常在/opt/bitnami/apache/conf/vhosts/wordpress-vhost.conf(单站点也可能在httpd-vhosts.conf),修改前记得先备份原文件,避免出错。

接下来把下面的规则添加到主域名的<VirtualHost>块里(要放在WordPress自带的Rewrite规则之前,比如# BEGIN WordPress注释块上方):

# 匹配主域名(支持www.example.com或example.com两种格式)
RewriteCond %{HTTP_HOST} ^(www\.)?example\.com$ [NC]
# 匹配所有旧路径模式,覆盖你提到的四种旧链接格式
RewriteRule ^/?(?:topics|education/topics|literacy/topics)/[^/]+(?:/[^/]+)?/show/?$ https://www.subdomain.example.com%{REQUEST_URI} [R=301,L,NC,NE]

咱们拆解下这个规则的逻辑:

  • RewriteCond:确保只对主域名的请求生效,不会影响子域名本身的服务
  • RewriteRule的正则部分:
    • (?:topics|education/topics|literacy/topics):匹配开头的三类路径前缀
    • [^/]+:匹配第一个可变目录(对应你说的vardir)
    • (?:/[^/]+)?:可选的第二个可变目录(兼容双vardir的情况)
    • /show/?:匹配末尾的show路径,最后的?允许路径末尾带或不带斜杠
  • 标记部分[R=301,L,NC,NE]:
    • R=301:永久重定向,对SEO友好
    • L:执行完这条规则后停止后续规则处理
    • NC:忽略大小写匹配,避免因大小写差异导致跳转失败
    • NE:不转义查询参数,保证?elem=icon_file969这类参数完整传递

你之前针对elem参数写的规则可以删掉了,因为这条通用规则已经覆盖了带任何查询参数的情况,包括elem参数的场景。

配置修改完成后,重启Bitnami的Apache服务让规则生效:

sudo /opt/bitnami/ctlscript.sh restart apache

你可以用浏览器访问旧链接测试,或者用curl命令验证:

curl -I https://www.example.com/education/topics/test/test/show?elem=icon_file969

如果返回的Location头指向子域名的对应链接,就说明规则生效了。

备注:内容来源于stack exchange,提问作者Josh Hawkes

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.21 09:23:07