如何通过.htaccess将无效子目录重定向至父目录(LiteSpeed环境)
LiteSpeed服务器下.htaccess重定向解决方案
在网站根目录的.htaccess文件中添加以下规则,可将带有无效后缀的404请求重定向至对应父目录:
RewriteEngine On # 排除真实存在的文件/目录,防止误重定向 RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d # 匹配带无效后缀的URL,重定向到父目录 RewriteRule ^(.+)/[^/]+/?$ /$1/ [R=301,L]
规则说明
- RewriteEngine On:启用URL重写,LiteSpeed原生支持该指令。
- 排除条件:两条
RewriteCond确保仅对不存在的文件/目录生效,避免干扰正常访问。 - RewriteRule:
- 正则
^(.+)/[^/]+/?$捕获父目录路径(如crush、bon-appetit),匹配后续任意非斜杠字符组成的无效后缀,同时兼容末尾带斜杠的情况(如//100000这类多斜杠请求,LiteSpeed会自动合并为单斜杠,仍可被匹配)。 /[$1]/将请求重定向到捕获的父目录,保留末尾斜杠。R=301为永久重定向(利于SEO),测试阶段可改用R=302临时重定向,避免浏览器缓存错误规则。L表示匹配后终止后续规则执行。
- 正则
补充调整
- 若仅需对特定父目录生效,可添加额外条件:
RewriteCond %{REQUEST_URI} ^/(crush|bon-appetit)/ - 确保LiteSpeed服务器已启用
mod_rewrite,且虚拟主机设置中允许.htaccess(开启Allow Override All权限)。 - 测试时建议清空浏览器缓存,或使用无痕模式验证规则效果。
内容的提问来源于stack exchange,提问作者Juniper Scott
相关产品推荐
相关产品推荐

