1

すべてのサイトが同じドキュメントルートを持つマルチ ドメイン サイト (カスタム CMS) を持っています。URL(ドメイン)に応じて、別のサイトを提供します。ルートが 1 つしかないため、.htaccess も 1 つしかありません

今、単純な .htacess ログインで 1 つのドメインを保護したい (このように)

このログインを 1 つのドメインに指定するにはどうすればよいですか?

4

2 に答える 2

3

mod_setenvifサポートを使用して、ドメインの 1 つだけを保護できます。.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 に答える