gpt4 book ai didi

apache - htaccess 检查查询字符串的一部分的长度

转载 作者:行者123 更新时间:2023-12-03 03:30:56 25 4
gpt4 key购买 nike

我希望 apache 在请求的一部分短于 255 个字符的情况下跳过某些重写(与缓存和 Linux 中的 255 个字 rune 件名限制有关)。

我写了这个:

RewriteCond %{QUERY_STRING} "utm_campaign" 
RewriteCond %{QUERY_STRING} "utm_medium"
RewriteCond %{QUERY_STRING} ^(.*\/)([^\/\n]{0,255})$
RewriteRule .* - [S=2]

我根据网址(q=path/to/page?utm_campaign=xxx&utm_medium=xxx)测试了正则表达式,它匹配,但 query_string 变量似乎有不同的内容,因为这两个规则此后仍然被执行。在这种情况下,应该匹配的部分是 page?utm_campaign=xxx&utm_medium=xxx (以及此后的所有内容)如果少于 255 个字符,则可以跳过接下来的 2 个重写规则。

顺便说一句,我正在使用 Drupal 6。

最佳答案

? 之前的部分不在 %{QUERY_STRING} 中(与 PHP 中的 $_SERVER['QUERY_STRING'] 相反,在这种情况下,因此会造成困惑),将 %{REQUEST_URI} 添加到 RewriteCond 解决了问题:

RewriteCond %{QUERY_STRING} "utm_campaign" 
RewriteCond %{REQUEST_URI}%_{QUERY_STRING} "utm_medium"
RewriteCond %{QUERY_STRING} ^(.*\/)([^\/\n]{0,255})$
RewriteRule .* - [S=2]

由于答案在评论中,因此不确定如何将此解决方案归功于@Kamil Šrot?

关于apache - htaccess 检查查询字符串的一部分的长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13700239/

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