如何修改原Apache适配的Rewrite规则使其在LiteSpeed中生效?
LiteSpeed环境下适配Apache Rewrite规则的修改方案
原Apache环境下的Rewrite规则在LiteSpeed中失效,核心原因是LiteSpeed对规则格式、循环控制的处理逻辑与Apache存在差异,以下是修改后的可用规则:
# 内部重写:匹配/product-page/category-one/指向index-redir.php并传递环境变量 RewriteCond %{ENV:REDIRECT_URI} !^/category-one/ RewriteRule ^product-page/category-one/$ index-redir.php [L,E=URI:/category-one/] # 外部301跳转:访问/category-one/时重定向到/product-page/category-one/ RewriteCond %{ENV:REDIRECT_STATUS} ^$ RewriteRule ^category-one/$ /product-page/category-one/ [R=301,L]
修改说明
- 给规则加上
$结尾,确保匹配完整路径,避免部分匹配引发意外行为。 - 新增
RewriteCond条件:- 第一条规则的条件防止内部重写后重复触发规则,避免循环。
- 第二条规则的条件确保仅直接访问
/category-one/的请求才会触发301跳转,排除内部重写产生的请求,避免跳转循环。
- 将规则主体与flags放在同一行,符合LiteSpeed对Rewrite规则的解析要求,避免换行导致的语法错误。
内容的提问来源于stack exchange,提问作者Andy
相关产品推荐
相关产品推荐

