gpt4 book ai didi

regex - 带有编码新行的 mod_rewrite 正则表达式规则 (%0A)

转载 作者:行者123 更新时间:2023-12-02 01:55:00 25 4
gpt4 key购买 nike

当我认为它应该匹配时,我遇到了 mod_rewrite 规则不匹配的问题。

规则如下:

RewriteRule ^api/(.*)\.(json|xml|csv|txt|printr|basictxt)$ api/endpoint.php?api_request=$1&api_response_type=$2 [QSA]

一个示例 url 是:

http://ourdomain.tld/api/aaaaa/bbbb/cccc%0Adddd.json

只要您的 url 中没有 $0A(据我所知),此规则就可以正常工作。

我意识到 . 意味着除新行之外的任何其他内容,并且尝试使用如下规则来绕过新行或百分比符号,因为我不确定它在mod_rewrite 看到它的时间,但没有一个起作用:

RewriteRule ^api/([.\s]*)\.(json|xml|csv|txt|printr|basictxt)$ api/endpoint.php?api_request=$1&api_response_type=$2 [QSA]


RewriteRule ^api/([.\%]*)\.(json|xml|csv|txt|printr|basictxt)$ api/endpoint.php?api_request=$1&api_response_type=$2 [QSA]


RewriteRule ^api/([.%]*)\.(json|xml|csv|txt|printr|basictxt)$ api/endpoint.php?api_request=$1&api_response_type=$2 [QSA]

奇怪的是,即使是以下所有 url 也会失败,即使是那些没有 % 符号的:

RewriteRule ^api/([.]*)\.(json|xml|csv|txt|printr|basictxt)$ api/endpoint.php?api_request=$1&api_response_type=$2 [QSA]

如果有人能为我阐明这一点,我将不胜感激,因为我无法真正改变 API 的工作方式(IE,我无法对其进行 base64 编码等)并且需要使用里面有新的一行。

我在 http://htaccess.madewithlove.be/ 测试过它他们的工具认为它应该工作!

编辑:

我们有针对上述 URL 的解决方案,但它不适用于以下示例:

/api/something/sent+40.06K+bytes++received+7.83M+bytes++542.70K+bytes%2Fsec%0Atotal+size+is+19.83G++speedup+is+2520.16+%28Completed+in+14+seconds%29.json

谢谢。

最佳答案

....and need to get a value to it with a newline in it.

您缺少插入符号 ^ 被认为是您的字符类 [^.] 中的否定运算符

RewriteRule ^api/([^.]*)\.(json|xml|csv|txt|printr|basictxt)$ api/endpoint.php?api_request=$1&api_response_type=$2 [QSA]

参见 regex101演示

关于regex - 带有编码新行的 mod_rewrite 正则表达式规则 (%0A),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20748198/

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