.htpasswd 在特定子域上

Posted

技术标签:

【中文标题】.htpasswd 在特定子域上【英文标题】:.htpasswd on specific subdomain 【发布时间】:2011-10-20 16:07:55 【问题描述】:

我有一个特定于语言的子域,它指向与我的站点的根目录相同的目录。我使用 php 来检测它并显示语言。

我希望只在这个子域上设置一个 htpasswd。请记住,没有特定于该子域的物理目录。因此,该语句将与我的站点的根目录位于同一 htaccess 中。

我需要 htaccess 来做到这一点:

if request is mysubdomain.domain.com
AuthUserFile /www/.htpasswd
AuthName "Locked"
AuthType Basic

谢谢

【问题讨论】:

【参考方案1】:

这应该可行:

AuthUserFile /www/.htpasswd
AuthName "Locked"
AuthType Basic
Require valid-user

SetEnvIf Host yourdomain.com secure_content

Order Allow,Deny
Allow from all
Deny from env=secure_content

Satisfy Any

我和@Anders Lindahl 在同一条路线上,但显然在 SetEnvIf 中没有“不”,所以我不得不将它更改为允许所有并拒绝设置了 env-var 的那些。

他的解决方案也有效,但您必须先 SetEnv no-auth-required 1 然后让 !no-auth-required 取消设置它(这就是 ! 所做的)

【讨论】:

像魅力一样工作!非常感谢!应该得到作者的确认:)【参考方案2】:

这未经测试,但可能有效或提示您在 Apache 文档中查找的内容:

SetEnvIf Host ^mysubdomain.domain.com !no-auth-required

AuthUserFile /www/.htpasswd
AuthName "Locked"
AuthType Basic
Require valid-user
Allow env no-auth-required
Satisfy Any

【讨论】:

以上是关于.htpasswd 在特定子域上的主要内容,如果未能解决你的问题,请参考以下文章

htpasswd命令

APACHE使用htpasswd生成Basic私密站点

apache htpasswd命令

htpasswd 使用&&在线生成器

在Apache和Linux/Unix上使用htaccess和htpasswd对文件夹/目录进行密码保护

Nginx服务的ssl认证和htpasswd认证