如何创建正则表达式来否定字符串,但包含其他任何内容

时间:2010-08-04 20:02:41

标签: regex apache .htaccess virtualhost

我正在尝试为apache创建一个将忽略某些字符串的正则表达式,但会使用其他任何东西。我尝试了很多不同的方法,但我似乎无法正确使用它。

例如

我希望它忽略

ignore.mysite.com

但我希望它使用的其他任何东西

*。mysite.com

2 个答案:

答案 0 :(得分:1)

如果你想要一个与whatever.mysite.com匹配的正则表达式,其中whatever是任何可能的主机名,但你希望正则表达式不匹配ignore.mysite.com,那么试试这个:

^(?!ignore)[a-z0-9-]+\.mysite\.com

诀窍是使用negative lookahead

答案 1 :(得分:0)

如果你想要这个mod_rewrite的正则表达式,你可以使用RewriteCond进行否定,就像这样:

   RewriteCond %{REMOTE_HOST}  !^ignore.example.com$
   RewriteRule ....

当然,您可以在文档中找到更多内容。