正则表达式-伪静态中文问题

正则表达式-伪静态中文问题,第1张

1.顺序换一下,并把\w+换成.*?如下

RewriteRule ^search/(.*?)/page=(\d+)$ search.php?c=$1&page=$2

RewriteRule ^search/(\w+)$ search.php?c=$1

2.abc/def只匹配abc

([^\/]*)/

括号里面就是abc

3.除了字符外,还允许%号出现abc%def全部能匹配出来

([\w\%]*)

括号里就是你想要的

配置Apache的伪静态,涉及到中文正则不能匹配,

匹配中文字符的正则表达式: [\u4e00-\u9fa5]

匹配双字节字符(包括汉字在内):[^\x00-\xff]

也试了,也不能匹配。

尝试匹配所有字母数字加上% ([a-zA-Z0-9_%]+)

也没有成功,查到Apache执行url会自动进行一次urldecode,传的值会还原成中文的,也不能匹配。

后来想到,把值进行两次 urlencode ,取的时候再进行两次 urldecode 用([a-zA-Z0-9_%]+)

就可以匹配了。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/209341.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-04
下一篇2023-04-04

发表评论

登录后才能评论

评论列表(0条)

    保存