1

我有一个多域站点(自定义 CMS),其中所有站点都具有相同的 documentroot。根据 url(域),它将服务于不同的站点。只有 1 个根,他们也只有 1 个 .htaccess

现在我想用一个简单的 .htacess 登录来保护 1 个域(像这样

如何指定此登录到 1 个域?

4

2 回答 2

3

您可以使用mod_setenvif支持来仅保护您的一个域。以下是您需要在 common.htaccess下放入的代码$DOCUMENT_ROOT

SetEnvIfNoCase Host ^www\.subdomain\.com$ SECURED=yes

AuthType Basic
AuthName "My Protected Area"
AuthUserFile /your/path/to/passwords
Require valid-user
Satisfy         any
Order           allow,deny
Allow from      all
Deny from       env=SECURED

上面的代码将仅显示基本身份验证弹出窗口,www.subdomain.com同时保持其他域打开。

于 2012-05-21T15:35:08.173 回答
1

要启用.htpasswd文件,您必须使用该受保护域的特定子目录。%{HTTP_HOST}诀窍是使用基于docroot文件中的变量的基于子域的内部重定向.htaccess,例如

RewriteEngine On
RewriteBase   /

RewriteCond   %{HTTP_HOST}   =admin.example.com
RewriteRule   ^(?!admin).*   admin/$0               [L]

这将在内部重定向任何htttp://admin.example.com/对 DOCROOT/admin 子目录的引用,该子目录可以拥有自己的文件.htaccess.htpasswd文件。

您可能需要将 CMS 条目脚本和子目录符号链接回共享实例。 就是我为 phpBB 所做的。

于 2012-05-21T14:50:14.593 回答