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

如何避免根目录的.htaccess重写规则影响子域名?

解决根目录.htaccess规则影响子域名的问题

核心修改方案

直接修改根目录的.htaccess文件,移除继承指令并添加主机域名判断条件,完整代码如下:

RewriteEngine On
# 仅对主域名生效,排除所有子域名
RewriteCond %{HTTP_HOST} ^domain\.co\.uk$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]

关键修改说明

  • 移除RewriteOptions inherit:这个指令会强制子目录(子域名对应的站点目录通常属于根目录的子文件夹)继承当前.htaccess的所有规则,删掉它就能从根源避免子域名自动应用这些重写规则。
  • 添加域名匹配条件:RewriteCond %{HTTP_HOST} ^domain\.co\.uk$ [NC]限定规则仅在请求的主机是主域名domain.co.uk时触发。如果你的主域名包含www前缀,可以修改为RewriteCond %{HTTP_HOST} ^(www\.)?domain\.co\.uk$ [NC],这样主域名的www和非www版本都能正常应用规则,子域名则会被自动排除。
  • 保留文件存在性判断:RewriteCond %{REQUEST_FILENAME} !-f确保只有当请求的文件实际不存在时才执行重写,避免覆盖真实存在的静态文件或其他资源。

对之前尝试的说明

  • 关于Options -MultiViews +FollowSymLinks:MultiViews是Apache的内容协商功能,和子域名继承重写规则的问题无关,所以添加后没有效果是正常的。
  • 关于直接写死主域名的RewriteRule:这种方式只是强制跳转,但没有添加主机判断条件,子域名的请求依然会被这条规则处理,无法从根本上解决规则影响子域名的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 00:15:03