【发布时间】:2012-06-28 15:45:57
【问题描述】:
如何在我的 apache/htaccess 配置中进行配置:
我想要对所有文件进行 HTTP 身份验证,但有一个例外。
文件click.php 和js/clickheat.js 无需任何身份验证即可从1.2.3.4 访问。
我尝试了 FilesMatch,但无法反转它。所以我不能把require valid-user 放在那里。我想使用SetEnv,但是我以后如何检查呢?
<FilesMatch "(click\.php|clickheat\.js)">
# what here?
</FilesMatch>
我的另一个想法是使用 mod_rewrite。好吧,我可以允许从给定主机访问这两个文件,并从其他任何地方拒绝它。但是我如何将它与 HTTP-Authentication 链接起来呢?
# allows access to two files from the given IP
RewriteCond %{REMOTE_ADDR} 1\.2\.3\.4
RewriteCond %{REQUEST_URI} ^/click.php [OR]
RewriteCond %{REQUEST_URI} ^/js/clickheat\.js
RewriteRule (.*) - [L]
# denies everything else
RewriteRule (.*) - [F,L]
所以我最喜欢的解决方案是通过 RewriteCond/RewriteRule 启用 HTTP-Auth。
背景(或我为什么要这样做):我正在尝试确保 clickheat (http://www.labsmedia.com/clickheat/index.html) 安装。而 1.2.3.4 是远程运行 mod_proxy 并将对这些文件的访问重定向到我们的 clickheat 主机。
【问题讨论】:
标签: apache .htaccess mod-rewrite mod-auth