.htaccess 不要在域中重写htpasswd

.htaccess 不要在域中重写htpasswd,.htaccess,.htpasswd,.htaccess,.htpasswd,我有一个域(也是文件夹结构)*.dev.xxx。 我需要制作一个htpasswd,它需要该域上每个站点的凭据 我的.htaccess AuthType Basic AuthName "test" AuthUserFile /var/www/dev/.htpasswd Require valid-user 但是当子域拥有自己的htaccess时,它会覆盖这个域,并且在未经授权的情况下工作 有没有办法强迫它授权 谢谢您的回答。您的结构可能如下所示 /. /.. /sub /web /log 只需

我有一个域(也是文件夹结构)*.dev.xxx。 我需要制作一个htpasswd,它需要该域上每个站点的凭据

我的.htaccess

AuthType Basic
AuthName "test"
AuthUserFile /var/www/dev/.htpasswd
Require valid-user
但是当子域拥有自己的htaccess时,它会覆盖这个域,并且在未经授权的情况下工作

有没有办法强迫它授权


谢谢您的回答。

您的结构可能如下所示

/.
/..
/sub
/web
/log
只需将您的
.htaccess
放入
sub
web

单次跨子域登录的父文件夹中即可 浏览器将不同的子域视为完全不同的身份验证范围。这样做是出于安全原因,以防止通过IP/域欺骗进行密码仿冒。因此,不可能通过.htaccess执行此操作,除非前面提到M1K1O:

只需将.htaccess放在sub和web的父文件夹中

…然后防止并排除子文件夹中的任何.htaccess auth声明

但是,如果您非常小心,可能会有一种在apache主机中处理它的服务器端方法

使用

服务器管理员webmaster@domain.com
DocumentRoot/var/www/dev/
服务器名www.dev.domain.com
ServerAlias*.dev.domain.com
...
#将以下内容添加到任何虚拟主机条目中:
AuthName“测试”
AuthType摘要
算法MD5
AuthDigestDomain/http://www.dev.domain.com/ http://other.dev.domain.com/
authqop-auth
AuthDigestProvider文件
AuthUserFile/var/www/dev/.htpasswd
此方法的一个主要缺点是AuthDigestDomain不支持任何通配符。i、 e:必须显式声明每个预期子域,而不是使用http://*.dev.domain.com/

用于编写自己的身份验证处理程序。
此路由是我过去考虑过的一种路由,但由于安全隐患太多,尚未深入研究。

您的服务器文件结构是什么?您的意思是什么?在*.dev文件夹中?您的根文件夹结构。我有
sub
web
log
。bin、boot、build等、home、lib、media、mnt、opt、proc、root、run、sbin、srv、sys、tmp、usr、var
<VirtualHost [your-ip]:80>
    ServerAdmin webmaster@domain.com
    DocumentRoot /var/www/dev/
    ServerName www.dev.domain.com
    ServerAlias *.dev.domain.com
    ...
    # Add to any your virtual host entries:
    <Location /var/www/dev>
        AuthName "test"
        AuthType Digest
        AuthDigestAlgorithm MD5
        AuthDigestDomain / http://www.dev.domain.com/ http://other.dev.domain.com/
        AuthDigestQop auth
        AuthDigestProvider file
        AuthUserFile /var/www/dev/.htpasswd
    </Location>
</VirtualHost>