apache:htaccess
目次
.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でアクセス制御
<Files ~ "^ファイル名\.拡張子$"> order deny,allow deny from all allow from IPアドレス </Files>
特定ファイルを特定IPで許可
<Files ~ "^wp-login\.php$"> order deny,allow deny from all allow from 123.123.123.123 allow from 124.124.124.124 </Files>
特定ファイル名を特定IPで許可
<Files ~ "^special\.*$"> order deny,allow deny from all allow from IP ADDRESS </Files>
拡張子がjpg、gif、pngのファイルを特定IPで許可
<Files ~ "\.(jpg|gif|png)$"> order deny,allow deny from all allow from IP ADDRESS </Files>
特定ファイルを特定IPで拒否
<Files ~ "^ファイル名\.拡張子$"> order allow,deny allow from all deny from IPアドレス </Files>
特定ファイルをX-Forwarded-Forで許可
<Files ~ "^wp-login\.php$"> SetEnvIf X-Forwarded-For "123.123.123.123" allowed order deny,allow deny from all allow from env=allowed </Files>
apache/htaccess.txt · 最終更新: 2014/08/12 06:22 by clownclown