.htaccessファイルによるオーバーライド
基本的に「.htaccess」にオーバーライドしたい設定を記述して、その設定を適用したいディレクトリに保存しておくだけでOKです!
このファイルを設置したディレクトリ以下の範囲で適用されますので、 サイトのトップディレクトリに置いた場合は、そのサイト全体に適用されます。
但し、「httpd.conf」の設定で「AllowOverride None」等となっている場合はオーバーライド不可で「.htaccess」は無視されます。
■.htaccessファイル自体の閲覧を防ぐ
.htaccessファイル自体がWebブラウザから閲覧されてしまうと
セキュリティが低下してしまう可能性がありますので、
.htaccess ファイルに次の1行を加えましょう。
AddHandler cgi-script htaccess
■リダイレクト機能を利用する
ホームページを移転した時に良く使うリダイレクトは以下のように記述すればOKです。
Redirect permanent /bbs/ http://headline.2ch.net/bbynews/この場合、http://自分のドメイン/bbs 以下のアクセスは全て http://headline.2ch.net/bbynews/ にリダイレクトされます。
■CGIが動くように設定する
以下は拡張子が
.cgi
と
.pl
のファイルをCGIとして認識される記述例です。
Options +ExecCGI AddType application/x-httpd-cgi .cgi .pl
■SSIを使えるように設定する
以下は拡張子が
.shtml、.html、.shtm、.htm
のファイルでSSIを有効にする記述例です。
Options +Includes AddType text/x-server-parsed-html .shtml .html .shtm .htmまた、CGIとSSIを同時に設定する場合は以下のように記述します。
Options +ExecCGI +Includes AddType application/x-httpd-cgi .cgi .pl AddType text/x-server-parsed-html .shtml .html .shtm .htm
■index.cgiやindex.phpをトップページにする方法
URLをスラッシュ(/)で終わらせてアクセスすると、通常は「index.html」ファイルが表示されます。
このデフォルトを違うファイルに変更する事が可能です。
DirectoryIndex index.cgi index.php上記の設定例は、まず最初に「index.cgi」を探しに行って表示します。 index.cgiファイルがなければindex.phpを探して表示します。
■ファイル一覧を表示させない
URLをスラッシュ(/)で終わらせてアクセスすると、デフォルトでは「index.html」ファイルが表示されますが、
サーバーの設定によってはこのファイルが存在しない場合はディレクトリ内のファイル一覧が表示されてしまいます。
これを防ぐには以下のように記述します。
Options -Indexes
■特定ユーザーのアクセスを拒否する方法
以下は一部のユーザーのアクセスを禁止する記述例です。
order allow,deny allow from all deny from 133.144.101.20 deny from hogehoge.jp deny from .net deny from 61.124.この例では 「IPが133.144.101.20」、 「ホスト名がhogehoge.jp」、 「ホスト名の最後が.net」、 「61.124.ではじまるIP」のアクセスを拒否します。
基本的に、拒否したいIPやホスト名を、deny from の後にずらずらと記述します。
■特定ユーザーからのアクセスのみ許可する方法
以下は特定ユーザーからのアクセスのみを許可する記述例です。
order deny,allow deny from all allow from 133.144.101.20 allow from hogehoge.jp allow from .net allow from 61.124.基本的に、アクセス許可したいIPやホスト名を、allow from の後にずらずらと記述します。
■特定のファイルへのブラウザからのサクセスを拒否する方法
<Files ~ "\.(dat|log|csv)$"> deny from all </Files>この例では、拡張子が .dat .log .csv のファイルに対してブラウザからのアクセスを禁止しています。
但し、このようなファイルは設定で制限するよりもWebブラウザからアクセスできない場所に作成するようにした方が尚ベターです。
■ユーザーエージェントでアクセスを拒否する方法
SetEnvIf User-Agent "robot" deny_ua order allow,deny allow from all deny from env=deny_uaこの例では、ユーザーエージェントが「robot」のアクセスを禁止しています。
■リンク元(Referer)によるアクセス制限の方法
SetEnvIf Referer "^http://www\.2ch\.net" ref_ng SetEnvIf Referer "^http://www\.1ch\.net" ref_ng order allow,deny allow from all deny from env=ref_ngこの例では、リンク元が「2ちゃんねる」や「1ちゃんねる」からのアクセスを禁止しています。
■エラーメッセージを変更する
以下は、認証に失敗した場合のエラー(401)、
アクセス権限が無い場合のエラー(403)、
ファイルが見つからない場合のエラー(404)、
サーバーエラー(500)の内容を自分で作成したファイルの内容に変更する記述例です。
ErrorDocument 401 /error/401.html ErrorDocument 403 /error/403.html ErrorDocument 404 /error/404.html ErrorDocument 500 /error/500.htmlこの例だと、例えば http://adgjm.net/hogehoge/test.htm にアクセスしてファイルが存在しないと 通常は「404 Not Found」や「ページが見つかりません」といったエラーメッセージが表示されますが、 このエラーメッセージの代わりに http://adgjm.net/error/404.html のページを表示させることが出来ます。