我正在开发一个必须在本地和远程服务器上运行的应用程序。一个目录使用htpasswd
文件进行保护。这就是我必须在htpasswd
文件中定义htaccess
文件的路径:
AuthUserFile ../app/some-folder/.htpasswd
不幸的是,服务器上需要app
文件夹,但我没有本地文件夹。相反,路径必须如下所示:
AuthUserFile /Volumes/some/very/long/path/some-folder/.htpasswd
是否可以使用if / else语句根据当前主机切换此AuthUserFile路径(编辑:或者更好,本地不需要任何身份验证)?或者是否有其他解决方法可以使此文件在我的本地和远程主机上都有效?
答案 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>