[英]htacess mod_rewrite regex - include numbers but exclude letters
我一直在用正则表达式挣扎,在阅读了45分钟后,我的头开始旋转。 负面的前瞻,那是什么...? (?:/(?:( ?! s \\ d +)。)*)+ $ <--- OMG !!!
:(
所以我有一条规则
RewriteRule /([0-9]+) /?id=$1 [R]
网址为www.hi.com/123
时效果很好
如果网址为www.hi.com/123abc
或www.hi.com/a123bc
如何将其刷新为/
(在这种情况下为文档根目录)?
我只想确保只有带数字的网址和其他没有匹配的网址 。
我试过了
RewriteRule /([0-9]+)([^a-z]+) /map.htm?marker=$1 [R]
但是奇怪的是,它刷新到了www.hi.com/?id=404
。
要在正则表达式中匹配1个或多个数字,它将是:
[0-9]+
要匹配正则表达式中的1个或多个数字或字母,它将是:
[0-9a-zA-z]+
对于您的情况,RewriteRule规则将是:
RewriteRule ^([0-9a-z]+)/?$ /map.htm?marker=$1 [NC,L,R=302]
将与/123abc
OR /123abc/
OR /123
OR /abc/
匹配,请注意,斜杠是可选的。 我使用的标志是:
NC - Ignore Case
L - Last
R=301 - Use http status 302 for resulting URL
但是,您还问:
如果网址为www.hi.com/123abc或www.hi.com/a123bc,如何将其刷新为/(在这种情况下为文档根目录)?
该规则将是:
RewriteRule ^([0-9a-z]+)/?$ / [NC,L,R=302]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.