.htaccess mod_rewrite中的百分号

zaq34kh6  于 2023-03-30  发布在  其他
关注(0)|答案(1)|浏览(112)

当我在mod_rewrite正则表达式中包含一个百分比符号(%)时,我的服务器一直抛出404错误。我已经搜索了所有地方,但都没有用。我运行的是apache 2.4.4,并尝试了下面所示的B标志。

RewriteRule ^pages/([a-zA-Z]+)/([a-zA-Z+%'"]+)$ pages/$1.php?search=$2 [B]

所以当我访问页面/animals/cats%20and%20dogs时,它失败了。但是当我将([a-zA-Z+%'"]+)更改为(.*)时,它就像一个魅力
Regex level = toddle,所以任何帮助都非常感谢。

hkmswyz6

hkmswyz61#

%20在mod_rewrite中使用\s(空格)进行匹配。然而,根据下面的评论,您似乎也想匹配其他非单词字符,因此最好使用\W
因此,将您的规则更改为:

RewriteRule ^(pages)/([a-z]+)/([a-z\W]+)$ $1/$2.php?search=$3 [B,L,NC]

相关问题