通常、http サーバが Apache かつ .htaccess が使用できる場合で、特定ディレクトリのアクセスを拒否したい場合は、そのディレクトリの .htaccess ファイルに deny from all とでも記述すればよいが、ある URL のドキュメントルートの下に、別 URL のドキュメントルートがあるような場合で、どちらかの URL からのアクセスのみ許可したい等の場合は使えない。
下記のように、
- http://www.example.com/
ドキュメントルート : /hoge/ - http://www.example.net/
ドキュメントルート : /hoge/contents.net/
と、www.example.com のドキュメントルートの下に www.example.net のドキュメントルートが存在するように定義されている場合、http://www.example.com/contents.net/ 以下の URL にアクセスすると、当然ながら www.example.net で表示されるコンテンツの表示できる。
これを
- http://www.example.com/contents.net/ → アクセスを拒否
- http://www.example.net/ → アクセスを許可
としたい場合の .htaccess 記述方法の例。
下記の内容の .htaccess ファイルを http://www.example.net/ のドキュメントルート、/hoge/contents.net/ 直下に設置する。
| SetEnvIf Request_URI “^/contents\.net/.*” DenyReq order allow,deny deny from env=DenyReq allow from all |
※上記設定が有効となるには、AllowOverride で FileInfo と Limit が許可になっている必要がある。
※当然、http://www.example.net/contents.net/ という URL もアクセスできなくなる。
0 Comments.