ユーザ用ツール

サイト用ツール


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

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki