Apache mod_rewrite:如何用RewriteCond提取URL参数中的指定数字?
正确的Apache RewriteCond指令
你之前的尝试核心问题有两个:一是仅匹配单个数字(用[0-9]而非[0-9]+/\d+),二是对&的转义处理有误。
针对你的需求,正确的RewriteCond指令如下:
RewriteCond %{QUERY_STRING} ^acc=":(\d+)":$
关键细节说明:
^acc="::精准匹配查询串起始的acc=":部分,^强制从查询串开头匹配,避免部分匹配问题。(\d+):捕获连续的一个或多个数字(\d+等价于[0-9]+),这部分内容会存入反向引用%1,供后续RewriteRule调用。":$:匹配查询串结尾的":,$确保匹配到查询串结束位置,符合你“查询串以:结尾”的要求。
如果实际请求中,":是HTML转义后的双引号(即QUERY_STRING中实际是"而非"),则调整为:
RewriteCond %{QUERY_STRING} ^acc=":(\d+):$
内容的提问来源于stack exchange,提问作者Yogesh Devi
相关产品推荐
相关产品推荐

