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

调整rewrite规则实现非www域名带路径跳转至对应www域名路径

问题根源

当前重写规则的执行顺序存在错误:非WWW域名跳转到WWW域名的规则被放在了所有规则的末尾。当用户访问example.com/news这类不存在对应实体文件/目录的短链接时,会优先匹配到前面的RewriteRule ^ index.php [QSA,L]规则,请求路径被改写为index.php后才会执行域名跳转逻辑,最终跳转后路径丢失,就会跳转到站点首页。

修复方案

将非WWW跳转的两条规则移动到RewriteEngine On之后的最靠前位置,优先处理域名跳转逻辑,再执行后续路径重写规则即可。

修改后的完整配置
# BEGIN Spark
AddDefaultCharset UTF-8

<IfModule mod_rewrite.c>
RewriteEngine On
# 非WWW域名强制跳转WWW,移到最前优先执行
RewriteCond %{HTTP_HOST} ^example.com
RewriteRule (.*) https://www.example.com/$1 [R=301,L]

RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule .* - [e=HTTP_AUTHORIZATION:%1]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$  /$1 [L,R=301]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [QSA,L]
</IfModule>

<IfModule mod_deflate.c>
<FilesMatch "\.(html|php|txt|xml|js|css|ttf|otf|ico|json|svg|)$">
SetOutputFilter DEFLATE
</FilesMatch>
</IfModule>
# END Spark

提示:修改配置后请清空浏览器缓存再测试,301永久重定向会被浏览器长时间缓存,未清缓存可能无法验证修改效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 20:45:08