仅在某些子文件夹中进行htaccess身份验证

时间:2016-02-12 09:13:20

标签: git .htaccess authentication subdirectory

我有这些文件夹:

root/
    dev/ => dev.example.com
    live/ => example.com

dev文件夹需要用户身份验证,而实时文件夹则不需要。最初这两个文件夹都有自己的.htaccess文件几乎相同,只有在实时用户身份验证部分被删除。

将从dev文件夹中提取实时文件夹的内容 - 将来,我想使用git并将所有文件和文件夹生效 - 包括.htaccess - 但我不想要删除实时文件夹中的用户身份验证。

我想要实现的是,根文件夹中的.htaccess文件只包含用户身份验证:

AuthUserFile /www/htdocs/root/dev/.htpasswd
AuthGroupFile /dev/null
AuthName 'ByPassword'
AuthType Basic
require valid-user

我希望在dev文件夹中有第二个.htaccess,其中包含所需的其他信息。我希望root/.htaccess仅包含保护我的dev文件夹的密码 - 这样当我将内容从dev拉到live(包括dev文件夹中的.htaccess文件)时,我不必更改任何内容在实时文件夹中。

我对此进行了研究,对于那种特殊情况我找不到任何东西,而且我对.htaccess的东西并不十分精通,所以我希望你能得到一些帮助/建议。

提前致谢!

1 个答案:

答案 0 :(得分:0)

使用apache 2.4,您可以:

<If "%{HTTP_HOST} == 'dev.example.com'">
  AuthType Basic
  AuthName "restricted area"
  AuthUserFile /var/www/.htpasswd
  require valid-user
</If>

查看https://httpd.apache.org/docs/current/expr.html

处的所有表达式