Apache身份验证多个域但相同的子目录

Apache身份验证多个域但相同的子目录

我的 WordPress 中有几个网站:example.com、example1.com 和 example2.com。它们都指向我的服务器/public_html文件夹,即我的 Apache 根文件夹。.htaccess仅当用户来自时,我需要在文件中添加什么才能使用 http 身份验证example2.com/public_html

example.com/public_html并且example1.com/public_html不应该使用身份验证。

答案1

.htaccess文件根据文件系统位置修改 apache 设置,您要在其中根据虚拟主机上下文更改设置。

因此,不要在 .htaccess 文件中设置身份验证,而是修改 Apache 配置文件并将身份验证设置添加到正确的虚拟主机条目:

<VirtualHost *:80>
  ServerName www.example.com
  ServerAlias example.com

  <Directory /some/path/public_html>
    AuthUserFile /some/path/public_html/.htpasswd
    AuthGroupFile /dev/null
    AuthName "authenticated Users Only"
    AuthType Basic
    Require valid-user
  </Directory>
</VirtualHost>

而不是使用<Directory /some/path/public_html>指令这也可能是一个很好的用例 <Location /public_html>虚拟主机上下文中的指令。

另一方面请注意强烈推荐来自 Apache 项目关于.htaccess文件的信息:

.htaccess如果您有权访问 httpd 主服务器配置文件,则应该完全避免使用文件。使用.htaccess文件会降低 Apache http 服务器的速度。可以包含在文件中的任何指令 .htaccess最好在目录块,因为它将具有相同的效果和更好的性能。

相关内容