htaccess中SetEnvIfNoCase Remote_Host的通配符

时间:2014-01-11 20:08:40

标签: regex apache

我想使用SetEnvIfNoCase和Remote_Host的通配符来限制对目录的访问。例如,我想允许访问任何从* .example.com请求目录的客户端的目录。

(实际上,我将使用它来限制此目录对googlebot.com等请求的访问。)

我在htaccess中的功能不起作用,我认为这是因为通配符格式不正确:

SetEnvIfNoCase Remote_Host ^(.*).example.com$ OK_friend

Order Deny,Allow
Deny from All
Allow from env=OK_friend

我尝试将Remote_Host更改为Remote_Addr并输入我的IP地址,一切正常。我似乎无法在远程主机名上使用通配符。

1 个答案:

答案 0 :(得分:0)

通过添加"?"尝试非贪婪逃避你的"。"因为它是一个RegEx元字符:

^(.*?)\.example\.com$

如果您只是在不捕获任何群组的情况下运行检查,则可以进一步简化:

^.*?\.example\.com$