.htaccess:不同主机的不同AuthUserFile路径

时间:2013-02-09 14:45:28

标签: .htaccess .htpasswd

我正在开发一个必须在本地和远程服务器上运行的应用程序。一个目录使用htpasswd文件进行保护。这就是我必须在htpasswd文件中定义htaccess文件的路径:

AuthUserFile ../app/some-folder/.htpasswd

不幸的是,服务器上需要app文件夹,但我没有本地文件夹。相反,路径必须如下所示:

AuthUserFile /Volumes/some/very/long/path/some-folder/.htpasswd

是否可以使用if / else语句根据当前主机切换此AuthUserFile路径(编辑:或者更好,本地不需要任何身份验证)?或者是否有其他解决方法可以使此文件在我的本地和远程主机上都有效?

2 个答案:

答案 0 :(得分:0)

没关系,我明白了。我把它放在我的.htaccess

AuthName "Protected"
AuthType Basic
AuthUserFile path/to/.htpasswd
Require valid-user
Order deny,allow
Deny from all
Allow from 127.0.0.1
Satisfy Any

这允许从本地IP进行的任何连接都可以通过而无需输入密码。不完美,但适用于我的情况。

答案 1 :(得分:0)

在Apache 2.4+中,您可以将If%{HTTP_HOST}中的.htaccess一起使用。

<If "%{HTTP_HOST} == 'localhost'">
AuthUserFile /development-path/.htpasswd
</If>

<Else>
AuthUserFile /production-path/.htpasswd
</Else>