====== .htaccess ======
===== sample =====
==== Code ====
RewriteEngine on
RewriteRule ^3b http://ensoku.dyndns.org [R=301,L]
RewriteRule ^3b/(.*)$ http://ensoku.dyndns.org/$1 [R=301,L]
## Add Expires headers
ExpiresActive On
ExpiresDefault "access plus 1 week"
## Compress components with gzip
SetOutputFilter DEFLATE
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary
Header append Vary User-Agent env=!dont-vary
## Configure entity tags
FileETag none
##
SetEnvIf Referer "180.26.239.162" BadReferer
order allow,deny
allow from all
deny from .ukrtel.net
Deny from env=BadReferer
==== 解説 ====
RewriteRule ^3b http://ensoku.dyndns.org [R=301,L]
RewriteRule ^3b/(.*)$ http://ensoku.dyndns.org/$1 [R=301,L]
* URIに3bの文字列が含まれていれば、http://ensoku.dyndns.orgに転送する
* その際の転送理由は「301(=Moved Permanently、永久に移動した)」となる
* 各行のルールが適用されれば、それ以降のルールは適用しない「L:Last」
## Add Expires headers
ExpiresActive On
ExpiresDefault "access plus 1 week"
* キャッシュコントロールを有効にする
* 全てのページで1週間キャッシュを保持する
⇒更新されてもその期間は古い内容が適用されるので、更新の頻繁なページや動的なページには不向き
* 画像ファイルなど、特定のファイルタイプを個別で指定する場合は、以下のように記載できる
ExpiresByType ファイルタイプ "(access|modification) plus N (minutes|days|weeks|months|years|)"
## Compress components with gzip
SetOutputFilter DEFLATE
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary
Header append Vary User-Agent env=!dont-vary
* Apacheのmod_deflateモジュールで圧縮転送を有効にする
* IE、Mozilla系のみ圧縮を行う
* gif jpg png は圧縮しない(元々圧縮されているものなので、効果薄)
## Configure entity tags
FileETag none
* ETagにはi-node情報が含まれているのでセキュリティ的に出力しない方が良い
* ロードバランサ - 複数WEB - ファイルサーバなどの環境ではETagは経路毎に変わるので、キャッシュが有効に働かない
====== Tips ======
===== 特定のファイルを特定IPでアクセス制御 =====
order deny,allow
deny from all
allow from IPアドレス
==== 特定ファイルを特定IPで許可 ====
order deny,allow
deny from all
allow from 123.123.123.123
allow from 124.124.124.124
==== 特定ファイル名を特定IPで許可 ====
order deny,allow
deny from all
allow from IP ADDRESS
==== 拡張子がjpg、gif、pngのファイルを特定IPで許可 ====
order deny,allow
deny from all
allow from IP ADDRESS
==== 特定ファイルを特定IPで拒否 ==
order allow,deny
allow from all
deny from IPアドレス
==== 特定ファイルをX-Forwarded-Forで許可 ====
SetEnvIf X-Forwarded-For "123.123.123.123" allowed
order deny,allow
deny from all
allow from env=allowed