gpt4 book ai didi

php - 如何处理 .htaccess 规则中的 & 和/等特殊字符?

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

在我的 .htaccess 文件中,我定义了以下规则,

RewriteRule ^([-0-9a-zA-Z]+) search.php?id=$1

如果我正在浏览 http://example.com/abcd,以上规则可以正常工作我需要在 url 中使用符号 & % -/:http://example.com/ab&cd

必须对规则进行哪些更改才能使其生效?

最佳答案

不知道该规则对您有何作用。首先,它循环。其次,$2$3 没有捕获组,但这无关紧要,因为$1 始终是“搜索”。我假设您已经粘贴了您拥有的有效规则的部分片段。

&%/ 不匹配的原因是因为您的正则表达式说:

[-0-9a-zA-Z]+

意思是:一个或多个字母、数字或破折号。所以没有 &%/。所以你可以将它们添加到方括号中:

RewriteRule ^([-0-9a-zA-Z/%&]+) search.php?id=$1&ff=$2&ffid=$3

但是,请记住,在应用任何规则之前,URI 已被解码。这意味着如果 URI 看起来像:

/foo%28bar

您不需要匹配 %,因为 URI 被解码为:

/foo(bar

并且您需要匹配 (。更好的选择可能是只匹配每个 except 点:

RewriteRule ^([^.]+) search.php?id=$1&ff=$2&ffid=$3

或者任何你想要在你的比赛中出现的东西。


尝试:

RewriteRule ^([^.]+)$ search.php?id=$1 [B]

这里的区别是 $ 将匹配绑定(bind)到 URI 的末尾,而 B 标志确保 & 得到编码.

关于php - 如何处理 .htaccess 规则中的 & 和/等特殊字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18641871/

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