1

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

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

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

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

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

4

2 回答 2

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 建立的任何连接无需输入密码即可通过。不完美,但适用于我的情况。

于 2013-02-10T09:33:56.040 回答
0

在 Apache 2.4+ 中,您可以使用带有in的If指令。%{HTTP_HOST}.htaccess

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

<Else>
AuthUserFile /production-path/.htpasswd
</Else>
于 2019-06-27T15:17:13.090 回答