• ベストアンサー

.htaccess indexのアクセス制限について

/public_html/直下のindex.html等にアクセス制限をしつつ、403エラーを404エラーとして返す方法はありませんか? 現状403を404と返すためのエラードキュメント(/public_html/error/hoge.php)自体にもアクセス制限がかかっているため結局403エラーを返してしまうといったことになってます。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

ご希望通りになるかどうか判りませんが FilesMatchだとfile名でマッチするものだけを制限できます サンプル: ErrorDocument 403 /error/hoge.php <FilesMatch "\.(s?html?|gif|jpe?g|png)$"> Order allow,deny Deny from all </FilesMatch> ##以上のサンプルでは .shtml .html .htm と画像を制限しています 参考URL: http://httpd.apache.org/docs/2.0/ja/mod/core.html#files 但し、Multiviewsを使っている場合は 意図した動作に成らないことが有るらしいので FilesMatch や Filesで制限する場合は Multiviewsは使わない方が吉かもです。

chelucyxxx
質問者

お礼

回答ありがとうございます。 サンプルを拝借させていただいて、特定のファイルに制限をかける…という部分にヒントをいただき、逆の発想でerrorフォルダに全てのアクセスを許可する.htaccessを置けばいいことに気付きました。 hoge.phpを置いているerrorフォルダに allow from all とかいた.htaccessを置くことで無事解決しました。 すごく簡単なことに気付かなかったのが恥ずかしいです。 ありがとうございました。

その他の回答 (1)

  • safle
  • ベストアンサー率55% (121/217)
回答No.1

ディレクトリーの属性変更できる権限がないと 結論としては無理かと FFFTP(FTPソフト)とかでディレクトリの属性を755にして メモ帳かなんかで空内容のindex.htmlを/public_html/直下に 置けば可能です。

chelucyxxx
質問者

補足

回答ありがとうございます。 説明不足だったので補足しておきます。 indexのアクセス制限は特定の条件で制限をしていて、それ以外は普通にに教示させたいと思ってます。 .htaccessの内容は以下のような感じです。 #特定ホストのアクセス制限とか order allow,deny allow from all deny from 123.45.67.89 #403を404で返す ErrorDocument 403 /error/hoge.php ファイルの設置場所とか public_html / index.html .htaccess

関連するQ&A