如果字符串包含除字母和数字之外的任何内容,则Apache重定向

时间:2015-06-01 09:22:21

标签: regex apache mod-rewrite

所以我有一个重写条件,它从前一行获取%1,并且如果字符串包含除字母和数字之外的任何内容,则应重定向。但是,由于某种原因,如果字符串只以字母或数字开头和结尾(允许中间为任何东西),它就有效。

继承人的条件:

RewriteCond %1 !^[A-Z0-9]+ [NC]
RewriteRule ^ http://www.example.com/nomatch

所以,就我而言,如果%1hdsuf38//*&hdsfghj73

,它就不会重定向

任何人都知道我错过了什么?

1 个答案:

答案 0 :(得分:1)

两次更改

  • 在字符序列中添加小写字母。

  • 添加锚点$,以便匹配一直持续到字符串结尾

正则表达式可以

^[a-zA-Z0-9]+$ 

Regex Demo

规则为

RewriteCond %1 !^[a-zA-Z0-9]+$  [NC]
RewriteRule ^ http://www.example.com/nomatch