.htaccessでやったことがあることをまとめてみた。
そもそも.htaccessとは
.htaccessとはapache上でサーバーの設定をいろいろ弄れるファイル。webサーバーにアクセスされた際に最初に読み込まれて動作を決定する
注意点
- コメントアウトは#で行う
- 最終行でしっかり改行を行う(.htaccessではリターンがあって初めて行と認識されるため)
特定のホストからのみアクセス可能にする
order deny,allow
deny from all #ここですべてからのアクセスを拒否しておいて
allow from xxx.xxx.xxx.xxx #ここで特定のIPからのみ許可をする
allow from xxx.xxx.xxx.xxx
特定のリファラからのみアクセス可能にする
SetEnvIf Referer "http://xxxxx.net/" sample1
order deny,allow
deny from all
allow from env=sample1
これは知らなかったですが、便利そう笑
この他にも特定のユーザーエージェント(firefoxとか)からのみアクセス可能にできたりするみたいです。
直リン拒否
SetEnvIf REFERER "自分のドメイン" ok
order deny,allow
deny from all
allow from env=ok
リダイレクト
例えば画像だけ別サーバーにあるみたいなときに便利
Redirect permanent /aaaa/image/ http://bbbb/image/
上の場合、/aaaa/image/ フォルダ内のファイルが読み込まれたら、http://bbbb/image
フォルダ内にアクセスしてファイルを取得してくるということ
エラーページ
エラーが起きたときに表示するファイルを指定できます
ErrorDocument 401 401.html #401エラーが起きたときは401.htmlを表示
ErrorDocument 403 403.html #403エラーが起きたときは403.htmlを表示
特定の拡張子に対する設定
.htaccessはデフォルトだと全ファイルに適用されてしまうので、たとえば.pngファイルにはアクセスできないようにするためには
<Files ~ "\.png$">
deny from all
</Files>
また、複数指定する場合は
<Files ~ "\.(png|mp3|jpg)$">
deny from all
</Files>
のように記述します
パスワード認証(ベーシック認証)
AuthUserFile フルパス/.htpasswd
AuthGroupFile /dev/null
AuthName "ほにゃらら"
AuthType Basic
require valid-user
<Files ~ "^.(htpasswd|htaccess)$">
deny from all
</Files>
1行目の「フルパス」の部分は「.htpasswd」の設置場所のサーバー上のフルパスが必要です。三行目のAuthNameの部分には認証ウィンドウを出したときに表示する文言なので自由に変更可能。.htpasswd(パスワードファイル)はhtpasswdコマンドで作成可能なので各自ググってください。
RewriteRuleも書こうと思ったのですが、長くなってしまったので別の記事として書きます笑