Dot-Htaccess
.htaccess 文件中子目錄的身份驗證
我有以下結構:
_auth/ ->.htpasswd website1/ website2/ website3/ .htaccess
我想將 AuthType Basic 添加到根目錄中的 .htaccess 中,以便 webiste1/ 和 website2/ 需要身份驗證,並且 website3/ 應該仍然可以訪問。這三個網站都有自己的域名。
我試過:
<directory "/website1"> AuthType Basic AuthName "Protected Area" AuthUserFile "_auth/.htpasswd" Require valid-user </directory> <directory "/website2"> AuthType Basic AuthName "Protected Area" AuthUserFile "_auth/.htpasswd" Require valid-user </directory>
但它不工作
您不能在文件中使用
<Directory>
容器。.htaccess
(.htaccess
文件本身本質上是一個目錄容器,目錄容器不能嵌套。)假設您使用的是 Apache 2.4 並且
/website1
作為/website2
請求的 URL 路徑的一部分出現,那麼您可以使用 Apache 表達式。例如:
<If "%{REQUEST_URI} =~ m#^/(website1|website2)/#"> AuthType Basic AuthName "Protected Area" AuthUserFile "_auth/.htpasswd" Require valid-user </If>
請注意,文件路徑
_auth/.htpasswd
被視為相對於定義的ServerRoot。您應該以其他方式指定絕對文件系統路徑,例如:AuthUserFile "/abs/path/to/_auth/.htpasswd"