初めまして。
質問の内容ですが、www直下においてある.htaccessに動作確認の為自分のホストをdenyするように記述しても、フォルダBにあるファイルにアクセスできてしまいます。フォルダAのバナーは表示されなくなるのですが…。
ロボ避けが働かないと困るので、何とか機能させたいと思っています。ディレクトリの構成と内容は以下の通りです。
| .htaccess
| フォルダA(直リンクバナーを置いています)
|-.htaccessなし
| フォルダB(サイト本体です)
|-.htaccessあり
| フォルダC(制限にかかった時表示するファイルを置いています)
|-.htaccessあり
==========直下の.htaccess===========
DirectoryIndex index.html .ht
order allow,deny
allow from all
deny from xxx.xxx.xxx.xxx
deny from 自分のホスト名
<Files ~ "^\.ht">
deny from all
</Files>
<Files robots.txt>
order deny,allow
allow from all
</Files>
==========フォルダB===========
DirectoryIndex index.html .ht
ErrorDocument 403 /フォルダC/403.html
order allow,deny
allow from all
deny from yyy.yyy.yyy.yyy
<Files ~ "^\.ht">
deny from all
</Files>
======================
です。長くてすみません。
以前動作確認した時はちゃんと弾かれていたのですが、最近フォルダBにある.htaccessを編集した時に再度動作確認してみると弾かれなくなっていました。
フォルダBに自分のホストをdenyするように書くとちゃんと機能します。どの辺りをいじればいいでしょうか?
deny はその名の通り拒否、allowは許可です。
フォルダBの.htaccessは deny from yyy.yyy.yyy.yyy
とありますので、yyy.yyy.yyy.yyy以外の全てのIPアドレスに関して許可となっています。
.htaccessは下位フォルダで上書きされますので、フォルダBにある.htaccessが最終的に有効となっています。
なお、
<Files ~ "^\.ht">
deny from all
</Files>
とあるので.htではじまるファイルはdenyとなる、ということです。
参考まで。
質問者
お礼
下層フォルダで上書きされるということを知らずに設定していました。
<Files ~ "^\.ht">
deny from all
</Files>
も他の記述も、検索して当てはまると思ったものをそのまま切り貼りしていたので、この機会にちゃんと勉強してみます。
taketan_mydns_jpさん、どうもありがとうございました!
お礼
下層フォルダで上書きされるということを知らずに設定していました。 <Files ~ "^\.ht"> deny from all </Files> も他の記述も、検索して当てはまると思ったものをそのまま切り貼りしていたので、この機会にちゃんと勉強してみます。 taketan_mydns_jpさん、どうもありがとうございました!