Yam*_*088 3 apache .htaccess mod-rewrite
我在尝试从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]
Run Code Online (Sandbox Code Playgroud)
我试图添加:
RewriteCond %{QUERY_STRING} (.+)/$
RewriteRule ^ %1 [R=301,L]
Run Code Online (Sandbox Code Playgroud)
但它破坏了网站.我一直在寻找一种方法来做到这一点,但尚未提出任何解决方案.我试过这篇文章的答案,但他们没有用.
我需要这样做的原因是因为我们的应用程序防火墙在URL中查找"ID",如果之后有任何非字母数字字符,则它会阻止请求.防火墙是在Apache请求到达服务器后实现的.
希望有更多Apache Rewrite规则经验的人可以帮助我.提前致谢.
要从查询字符串中删除尾部斜杠,可以使用以下规则:
RewriteCond %{QUERY_STRING} ^(.+)/$
RewriteRule ^ %{REQUEST_URI}?%1 [R=301,L,NE]
Run Code Online (Sandbox Code Playgroud)
确保这是您的.htaccess下面的第一条规则RewriteEngine On.
| 归档时间: |
|
| 查看次数: |
626 次 |
| 最近记录: |