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

根目录htaccess的www转非www规则在blogs目录失效如何解决

问题原因

Apache默认配置下,子目录的.htaccess重写规则会完全覆盖根目录的重写规则,不会自动继承父级规则,所以访问blogs目录下的路径时,根目录配置的www跳转规则不会被触发。

解决方法

这里提供两种可行的配置调整方案,任选其一即可:

方案1:子目录直接复用跳转规则(兼容性最好)

直接将根目录的www跳转规则添加到blogs子目录.htaccess的最开头,调整后的完整配置如下:

RewriteEngine On
# www跳转非www规则
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]

# 原有URL美化规则
RewriteRule ^/?author(?:/(?:.*/)?([^/]+))?/?$ index.php?author=$1 [L,NC,QSA]
RewriteRule ^/?tag(?:/(?:.*/)?([^/]+))?/?$ index.php?tag=$1 [L,NC,QSA]
RewriteRule ^/?post(?:/(?:.*/)?([^/]+))?/?$ index.php?post=$1 [L,NC,QSA]
RewriteRule ^/?page(?:/(?:.*/)?([^/]+))?/?$ index.php?page=$1 [L,NC,QSA]

方案2:开启重写规则继承(适合多子目录场景)

如果站点有多个子目录都需要复用根目录的规则,可以在blogs子目录.htaccess开头添加继承配置,让父目录的规则优先于子目录规则执行:

RewriteEngine On
# 优先继承根目录的重写规则
RewriteOptions InheritBefore

# 原有URL美化规则
RewriteRule ^/?author(?:/(?:.*/)?([^/]+))?/?$ index.php?author=$1 [L,NC,QSA]
RewriteRule ^/?tag(?:/(?:.*/)?([^/]+))?/?$ index.php?tag=$1 [L,NC,QSA]
RewriteRule ^/?post(?:/(?:.*/)?([^/]+))?/?$ index.php?post=$1 [L,NC,QSA]
RewriteRule ^/?page(?:/(?:.*/)?([^/]+))?/?$ index.php?page=$1 [L,NC,QSA]

注意事项

配置修改完成后需要清空浏览器缓存再测试,因为301永久跳转默认会被浏览器本地缓存,避免旧缓存影响验证结果。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 00:18:02