Kee*_*fer 43 .htaccess apache2 basic-authentication
是否可以为给定目录设置.htaccess/.htpasswd访问控制设置,但如果它们来自特定IP地址,则绕过登录/密码身份验证?
我知道你可以在.htaccess文件中做这样的事情:
order deny,allow
deny from all
allow from 000.000.000.000
Run Code Online (Sandbox Code Playgroud)
但是如果你沿着这些方向添加一些东西:
AuthType Basic
AuthName "restricted area"
AuthUserFile /path/to/.htpasswd
require valid-user
Run Code Online (Sandbox Code Playgroud)
然后它会提示输入密码.有没有办法做一个if/else类型设置,或其他一些解决方案,以便用户作为给定的IP(或一组IP)不会被提示输入密码,但其他人都这样做?
j5D*_*Dev 71
对于2.2.X版本,您可以使用以下...
AuthUserFile /var/www/mysite/.htpasswd
AuthName "Please Log In"
AuthType Basic
require valid-user
Order allow,deny
Allow from xxx.xxx.xxx.xxx
satisfy any
Run Code Online (Sandbox Code Playgroud)
显然要替换用户文件的路径和要绕过身份验证的IP地址.
有关具体细节的进一步说明,请访问:http://httpd.apache.org/docs/2.2/howto/auth.html
Sey*_*sen 21
如果你使用apache> = 2.4,它将是这样的:
<If "%{REMOTE_ADDR} != '127.0.0.1'">
AuthType Basic
AuthName "restricted area"
AuthUserFile /path/to/.htpasswd
require valid-user
</If>
Run Code Online (Sandbox Code Playgroud)
有关更多信息,请查看文档.
Sve*_*rre 13
我正在运行Apache/2.2.16(Debian),并遇到类似问题,我解决了这个问题:
(这可以在.htaccess文件中运行,也可以直接在虚拟主机下运行<Location/>)
Order deny,allow
Deny from all
AuthType Basic
AuthUserFile /home/somesite/.htpasswd
AuthName "No entry, unless"
Require Valid-user
Allow from x.x.x.x
Allow from x.x.x.x
Satisfy Any
Run Code Online (Sandbox Code Playgroud)
我允许从两个不同的ip输入没有密码,其余的必须输入密码才能输入.
如果您使用apache> = 2.4,并且您想要允许一组IP,如初始问题中所述,您可以这样做:
<If "-R '192.168.0.0/24'">
Require all granted
</If>
<ElseIf "-R '192.168.1.0/24'">
Require all granted
</ElseIf>
<Else>
AuthType Basic
AuthName "restricted area"
AuthUserFile /etc/apache2/.htpasswd
require valid-user
</Else>
Run Code Online (Sandbox Code Playgroud)
与Apache 2.4兼容:
AuthType Basic
AuthUserFile /www/.htpasswd
AuthName "Protected Area"
<RequireAny>
Require ip 1.2.3.4
Require valid-user
</RequireAny>
Run Code Online (Sandbox Code Playgroud)
有关更多示例,请参见迁移指南从2.2升级到2.4。
| 归档时间: |
|
| 查看次数: |
56806 次 |
| 最近记录: |