htaccess配置异常:子域名访问自动跳转到主域名根目录
解决子域名automatyka.kielkowski-szkolka.pl重定向到主域名根目录的问题
你的问题大概率是根目录的.htaccess里的重定向规则没有区分主域名和子域名,导致子域名的请求被强制导向主域名根目录。咱们可以通过添加域名匹配条件来修正这个问题,具体方案如下:
1. 定位并修改根目录.htaccess的重定向规则
首先找到你.htaccess中负责重定向的RewriteRule相关代码(如果有的话)。很多时候这类问题是因为规则没有限定仅作用于主域名,比如类似这样的宽泛规则:
RewriteEngine On RewriteRule ^(.*)$ https://kielkowski-szkolka.pl/$1 [R=301,L]
你需要给规则添加排除子域名的条件,修改后的完整规则示例:
RewriteEngine On # 先排除子域名automatyka的请求,不应用主域名重定向 RewriteCond %{HTTP_HOST} !^automatyka\.kielkowski-szkolka\.pl$ [NC] # 仅对主域名(含www前缀)应用重定向规则 RewriteCond %{HTTP_HOST} ^(www\.)?kielkowski-szkolka\.pl$ [NC] RewriteRule ^(.*)$ https://kielkowski-szkolka.pl/$1 [R=301,L]
解释一下:
!^automatyka\.kielkowski-szkolka\.pl$表示不匹配子域名的请求[NC]是忽略大小写的意思,避免大小写差异导致的问题- 这样配置后,子域名的请求就不会被主域名的重定向规则干扰了
2. 检查子域名目录的.htaccess
如果public_html/automatyka目录下也有.htaccess文件,确保里面没有设置重定向到主域名根目录的规则。如果有,要么删除对应的重定向代码,要么调整为适合子域名的规则(比如子域名内部的跳转)。
3. 关于PHP环境配置的说明
你提供的.htaccess片段里的PHP配置:
SetEnv PHP_VER 5 php_flag apc.enabled On # 其他PHP配置项...
这部分不会导致重定向问题,但如果子域名需要使用不同的PHP版本,可以在public_html/automatyka的.htaccess里单独设置,比如:
SetEnv PHP_VER 7.4 # 根据你的需求修改版本号
测试步骤
修改完成后,记得:
- 清除浏览器缓存(或者用隐私/无痕窗口访问),避免旧的重定向缓存影响测试结果
- 访问
automatyka.kielkowski-szkolka.pl,确认是否正常指向子域名对应的目录 - 如果问题依然存在,可以暂时注释掉根目录里的重定向规则,测试子域名是否能正常访问,以此排查是哪条规则导致的冲突
内容的提问来源于stack exchange,提问作者Avatarus
相关产品推荐
相关产品推荐

