gpt4 book ai didi

regex - mod_rewrite 参数数量/反向引用限制

转载 作者:行者123 更新时间:2023-12-04 14:09:04 25 4
gpt4 key购买 nike

显然,您可以在 htaccess RewriteRules 中访问多少反向引用存在限制(9)。

但是我们有一个需要超过 9 个参数的 RewriteRule,如下所示:

RewriteRule ^([^/]+)/b([0-9]+)(/a([0-9]+))?(/v([0-9]+))?(,([0-9]+))?(/(ajax|share))?(,complete)?$ /index.php?control=sites&site=brands&control_file=version_select&name=$1&campaign_id=$2&answer=$4&page=$8&option=$10&video_id=$6&page_type=research [L]

因此,当您尝试访问“$10”时会发生什么,它使用 $1 并在其旁边放置一个 0。

有没有人能够解决这个问题,任何替代解决方案或任何东西?

谢谢!

最佳答案

实际上,您不需要捕获所有内容。为您不想重用的东西编写非捕获组(由 "?:" 引入),这应该再次给您一些喘息的空间。相比:

你的: 我的:
------------------------- ------------------------- ——
^([^/]+)/b $1 ^([^/]+)/b $1
([0-9]+) $2 ([0-9]+) $2
(/a([0-9]+))? $4 (?:/a([0-9]+))? 3 美元
(/v([0-9]+))? $6 (?:/v([0-9]+))? 4 美元
(,([0-9]+))? $8 (?:,([0-9]+))? 5 美元
(/(ajax|share))? 10 美元! (?:/(ajax|share))? 6 美元
(,完成)?$ 11! (,完整)?$ 7

但是单独使用 mod_rewrite,您不能超过 9 个反向引用。如果您需要更多,请使用替代方法 - 例如,仅捕获重写中最重要的部分,并对应用中 URL 的其余部分进行一些字符串处理。

关于regex - mod_rewrite 参数数量/反向引用限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/715069/

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