微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

htaccess 内容协商在 LiteSpeed 服务器上不起作用

如何解决htaccess 内容协商在 LiteSpeed 服务器上不起作用

我们的 htaccess 中的代码为移动用户提供了不同的 Web 模板,例如

RewriteCond %{HTTP_USER_AGENT}  "Mobile"
RewriteCond %{REQUEST_URI} "!_mob.PHP"
RewriteRule ^(.*).PHP$    /$1_mob.PHP [L,QSA]

因此,如果条件评估为真,文件 foo.PHP 将在内部重写为 foo_mob.PHP。 现在我们有一个额外的“pretty-url”指令,它根据查询字符串将描述性类别和产品页面名称重写为内部格式,如

RewriteCond %{REQUEST_URI} ^/category1\.htm
RewriteRule ^.*$  /index.PHP?cPath=1 [L,QSA]

结合上述内容,这应该会在移动设备上向用户显示模板 index_mob.PHP。多年来,这在 Apache 服务器上一直运行良好,但在我们现在转移到 LiteSpeed 服务器后不再起作用。移动模板显示为具有显式 .PHP 扩展名的请求,但不会显示那些首先重写为 index.PHP 的请求(也包括重写为 index .PHP 认)

解决问题的任何帮助将不胜感激。

解决方法

如果您在使用 Litespeed 时在 Combination 中同时使用上述 .htaccess 规则,则问题是 L 标签在 .htaccess 中出现两次。

[L] 标签代表 Last,在 Apache 和 Litespeed 中有不同的含义。

[L] 标志后的规则集可能仍会在后续迭代中由 Apache 处理,但对于 Litespeed 和大多数其他上下文而言,情况并非如此。

其他信息和官方文档为 here

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。