SetEnvIf-匹配除两个以外的所有子域

时间:2019-02-01 13:07:07

标签: regex apache .htaccess

我想根据主机名设置一个ENV变量。 我使用正则表达式来匹配除“ toto”和“ tata”之外的所有子域,我尝试了几种可能性,但是它们都不起作用...

SetEnvIf Host ^prefix-(.*?!(toto|tata))-env\.example\.net$ IS_FORBIDDEN
SetEnvIf Host ^prefix-(?!toto|tata)-env\.example\.net$ IS_FORBIDDEN
SetEnvIf Host ^prefix-!(toto|k-tata)(\w+)-env\.example\.net$ IS_FORBIDDEN

1 个答案:

答案 0 :(得分:0)

这应该对您有用:

SetEnvIf Host ^((?!(toto|tata).+)\.example\.net)$ IS_FORBIDDEN

要同时使用大小写匹配主机标头,可以使用SetEnvIfNoCase

SetEnvIfNoCase Host ^((?!(toto|tata).+)\.example\.net)$ IS_FORBIDDEN