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

非www转www的.htaccess规则失效,请求技术帮助

非www转www重定向仅首页生效的解决方法

我为客户尝试多种.htaccess规则,目标是将所有非www域名的URL重定向到对应的www域名,但仅首页能触发301重定向,内页均无效。主机服务商为SG,当前.htaccess内容如下:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

# Redirection from non-www to www ---&gt; latest rule used
RewriteCond %{HTTP_HOST} ^example.com [NC]
RewriteRule ^(.*)$ https://www.example.com/$1 [L,R=301]


AddHandler application/x-httpd-php81 .php .php5 .php4 .php3

先后尝试以下3种规则,均无法实现全站重定向:

test 1(与上述规则一致)

RewriteCond %{HTTP_HOST} ^example.com [NC]
RewriteRule ^(.*)$ https://www.example.com/$1 [L,R=301]

test 2

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www. [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [L,R=301]

test 3

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www. [NC]
RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

解决思路与方案

核心原因

WordPress自带的Rewrite规则块中包含[L]标志,会终止后续规则的处理。如果重定向规则放在WordPress规则之后,内页请求会先被WordPress路由规则捕获并处理,重定向规则根本没有执行的机会,只有首页请求会触发重定向。

修正后的完整.htaccess配置

将重定向规则移至WordPress规则块之前,同时补充HTTPS协议的适配,避免协议不一致问题:

# 非www转www + 强制HTTPS
<IfModule mod_rewrite.c>
RewriteEngine On
# 处理非www且未启用HTTPS的请求
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [L,R=301]

# 处理非www但已启用HTTPS的请求
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTPS} on
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [L,R=301]
</IfModule>

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

AddHandler application/x-httpd-php81 .php .php5 .php4 .php3

额外注意事项

  • 清除缓存:301重定向会被浏览器永久缓存,测试前请清除浏览器缓存或使用无痕模式访问,避免旧缓存影响测试结果。
  • WordPress后台设置:进入WordPress后台「设置-常规」,确认「WordPress地址(URL)」和「站点地址(URL)」均设置为https://www.example.com,避免WordPress生成非www的内部链接,导致重定向循环或失效。
  • SG主机配置检查:确认SG主机已开启mod_rewrite模块(SG主机默认开启,可通过cPanel的Apache模块管理页面验证)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 19:08:29