我想使用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地址,一切正常。我似乎无法在远程主机名上使用通配符。
答案 0 :(得分:0)
通过添加"?"尝试非贪婪逃避你的"。"因为它是一个RegEx元字符:
^(.*?)\.example\.com$
如果您只是在不捕获任何群组的情况下运行检查,则可以进一步简化:
^.*?\.example\.com$