gpt4 book ai didi

apache - 从 Apache 查询字符串中删除尾部斜杠

转载 作者:行者123 更新时间:2023-12-02 09:32:27 28 4
gpt4 key购买 nike

我在尝试从 apache 中的查询字符串末尾删除尾部斜杠时遇到问题。

我现在有以下重写规则,使 URL 和查询字符串全部小写:

   RewriteEngine On
RewriteMap lc int:tolower
RewriteCond %{REQUEST_URI} ^[^A-Z]*[A-Z].* [OR]
RewriteCond %{QUERY_STRING} ^[^A-Z]*[A-Z].*
RewriteRule ^ ${lc:%{REQUEST_URI}}?${lc:%{QUERY_STRING}} [L,R=301]

我尝试添加:

RewriteCond %{QUERY_STRING} (.+)/$
RewriteRule ^ %1 [R=301,L]

但是它破坏了网站。我一直在寻找一种方法来做到这一点,但尚未想出任何解决方案。我尝试了 this post 的答案但他们没有工作。

我需要这样做的原因是因为我们的应用程序防火墙在 URL 中查找“ID”,如果后面有任何非字母数字字符,则会阻止该请求。防火墙是在 Apache 请求到达服务器后实现的。

希望对 Apache Rewrite 规则有更多经验的人可以帮助我。提前致谢。

最佳答案

要从查询字符串中删除尾部斜杠,您可以使用以下规则:

RewriteCond %{QUERY_STRING} ^(.+)/$
RewriteRule ^ %{REQUEST_URI}?%1 [R=301,L,NE]

确保这是 .htaccess 中 RewriteEngine On 行下方的第一条规则。

关于apache - 从 Apache 查询字符串中删除尾部斜杠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37881101/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com