我有一个多域网站(自定义内容管理系统),其中所有网站都有相同的文件根。根据url(域)的不同,它将服务于不同的站点。它们只有一个根,也只有一个.htaccess
现在,我想使用简单的.htacess登录(like this)保护1个域
如何将此登录名指定到1个域?
发布于 2012-05-21 23:35:08
您可以使用mod_setenvif支持来仅保护您的一个域。下面是您需要放入$DOCUMENT_ROOT下的公共.htaccess中的代码
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-21 22:50:15
要启用.htpasswd文件,必须使用该受保护域的特定子目录。诀窍是根据docroot .htaccess文件中的%{HTTP_HOST}变量使用基于子域的内部重定向,例如
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做这件事的方式。
https://stackoverflow.com/questions/10684990
复制相似问题