我有一个多域网站(自定义CMS),其中所有网站都有相同的文档。根据网址(域),它将提供不同的网站。只有1个root,他们也只有1个.htaccess
现在我想通过简单的.htacess登录(like this)
保护1个域名如何指定此域名登录?
答案 0 :(得分:3)
您可以使用mod_setenvif支持仅保护您的某个域。以下是您需要在.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
的基本身份验证弹出窗口,同时保持其他域名处于打开状态。
答案 1 :(得分:1)
要启用.htpasswd
文件,您必须使用该受保护域的特定子目录。诀窍是根据docroot %{HTTP_HOST}
文件中的.htaccess
变量使用基于子域的内部重定向,例如
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} =admin.example.com
RewriteRule ^(?!admin).* admin/$0 [L]
这将在内部将任何htttp://admin.example.com/
引用重定向到DOCROOT / admin子目录,该子目录可以有自己的.htaccess
和.htpasswd
文件。
您可能需要将符号链接和CMS条目脚本和子目录返回到共享实例。 This就是我为phpBB做的这个。