我已经设置了一个开发网站并希望对其进行密码保护,因此只有经过验证的访问者才能查看该网站。一切都很好。我很生气,在我的本地版本上输入我的用户名和密码。因此,在不更改本地副本与开发站点之间的htaccess文件的情况下,如何使用密码保护站点,但无需输入用户名和密码即可自行访问?
答案 0 :(得分:15)
这样的事情应该可以解决问题..
Require valid-user
Allow from 127.0.0.1
Satisfy Any
答案 1 :(得分:4)
我已经找到了一种从Windows密码文件中分离Linux的一种很酷的方式(因为我在Windows中开发然后发布到Linux生产服务器)。
我刚用phpinfo()写了一个php脚本;在我们的本地和prod服务器上,找到了apache模块'mod_win32'来分隔它们中的两个。
<IfModule mod_win32.c>
AuthUserFile C:\xampplite\your\windows\path.passwd
</IfModule>
<IfModule !mod_win32.c>
AuthUserFile "/your/linux/path/.passwd"
</IfModule>
AuthName "Please Login"
RewriteEngine On
AuthType Basic
Require valid-user
答案 2 :(得分:1)
假设您可以在开发站点上输入密码 - 将auth指令放在开发站点而不是.htaccess文件中的VirtualHost中 - 这样您的auth将在服务器级别而不是目录级别进行处理
此外,大多数现代浏览器可能会为您保存密码:)
答案 3 :(得分:1)
Windows示例:
AuthType Basic
AuthName "Password Protected Area"
AuthUserFile C:/Apache24/htdocs/.htpasswd
Require valid-user
Order allow,deny
Allow from localhost
Allow from 127.0.0.1
Satisfy Any
答案 4 :(得分:0)
正如所讨论的here,您可以使用allow from
来允许来自特定主机的访问。
答案 5 :(得分:0)
自Apache 2.4起,您还可以通过检查HTTP_HOST环境变量来保护您的密码保护:
<If "%{HTTP_HOST} != 'localhost'">
# Your password protection code
</If>
另见Mark Fox对accessing the environment variables的问题的回答。