• 締切済み

.htaccessで特定のフォルダ以外をアクセス禁止にするには?

昨日からLinuxの勉強を始めた初心者です。 .htaccessの書き方についてどなたかご教授ください。 特定のファイル(index.phpとhtmlフォルダ)以外へのアクセスを禁止しようと下記のコードを書いてみました。 <Files ~ "*"> deny from all </Files> <Files ~ "^(index.php|html)$"> allow from all </Files> が、全てのファイルへのアクセスが禁止されてしまったのか、index.phpへアクセスできなくなってしまいました。 かといって、index.phpとhtmlフォルダ以外の全てのファイルを記述して、denyするのは記述が汚くなるので避けたいです。 どのように記述したらよいのでしょうか?

みんなの回答

  • hito-koto
  • ベストアンサー率53% (14/26)
回答No.2

apache2が使える環境で試してみました。 (.htaccessでなく、configで試しています) ・ "*"を先に書く(後でマッチしたもの勝ちのように感じます) ・ Files ""でallowする。(index.htmlを省略せずに直接読むのなら不要) ・ 拡張正規表現をやめる(こちらの環境の問題。FilesMatchは未検証) で、希望通り動くことは動きましたが… ・ reloadとrestartで挙動が違う…ことがある 謎が深まっています。

noname#34685
質問者

補足

回答有難うございます。 あれから色々試しましたが、まだうまくいきません。 継続して調べてみます。

  • hito-koto
  • ベストアンサー率53% (14/26)
回答No.1

参考URLによれば、「現れた順番に」となっているので、順番を逆にしてみてはいかがですか・・・? 試してもいないのに、コメントしてスミマセン。

参考URL:
http://httpd.apache.org/docs/2.0/ja/sections.html
noname#34685
質問者

補足

参考意見有難う御座います! 順番を逆にしても駄目でした。 なんででしょう。 因みにレンタルサーバ(ロリポップ)で、確認しています。

関連するQ&A