トピックス

Joomla! 1.0 - 'フリーダムを体験してください'!. 今までダイナミックサイトの構築はお世辞にも簡単ではなかったでしょう このCMSは簡単に管理用・インタフェースからすべてのコンテンツを管理できます。
 
powered_by.png, 1 kB

Home arrow ニュース arrow Server情報 arrow .htaccess概論
.htaccess概論 PDF プリント メール
作者 kiyoeri   
2009/02/12 木曜日 09:34:02 JST
Apache .htaccess
Apacheの難解な .htaccessをまとめたサイトが見つかった。
http://w3g.jp/others/htaccess/outline
自分なりにまとめておく。

①Webサーバーの動作設定の反映順位
・設定は上位(httpd.conf)から下位(.htaccess)に向けて上書きして反映される。
・アクセス制限は上位が優先され、解除するには下位の.htaccessで指定を行う。
httpd.conf ┬→ .htaccess ┬→ .htaccess
       │         └→ .htaccess
       └→ .htaccess

②アクセスの禁止と許可
1.特定の参照元の禁止
[http://www.hoge.com からのリソース参照を禁止する。]
SetEnvIf Referer "^http://www\.hoge\.com" ref_ng
order allow,deny
allow from all
deny from env=ref_ng

2.特定の参照元の許可
[http://www.hoge.com からのリソース参照を許可する。]
SetEnvIf Referer "^http://www\.hoge\.com" ref_ok
SetEnvIf Referer "^$" ref_ok
order deny,allow
deny from all
allow from env=ref_ok

3.特定ホストのアクセスを禁止
[ URI のxxx.or.jp や IPアドレスの、 255.255.255.0 123.456. アクセスを禁止する。]
order allow,deny
allow from all

deny from xxx.or.jp
deny from 255.255.255.0
deny from 123.456.


4.特定ホストのアクセスを許可
[ URI のxxx.or.jp や IPアドレスの、 255.255.255.0 123.456. アクセスを許可する。]
order deny,allow
deny from all
allow from xxx.or.jp
allow from 255.255.255.0
allow from 123.456.


③Basic認証
AuthType Basic           (Basic認証を指定)
AuthUserFile /virtual/equation/public_html/sample/.htpasswd 
( ↑ .htpasswdを認証に使用)
AuthGroupFile /dev/null     (ユーザー認証のためのグループファイルを指定)
AuthName "Enter password"  (認証のための開始メッセージ)
Require valid-user         (ユーザ単位の認証、グループ単位はvalid-group)
※ .htpasswdの隠蔽方法
1..htpasswd を、WWW サーバのドキュメントツリー(~/public_html/) 下に置かない。
2.<Files> を使って .htpasswd ファイルの閲覧を拒否させる記述を書く。
   <Files ~ "^.htpasswd$">
     deny from all
   </Files>
3..htpasswd ファイルを CGIスクリプトとして扱うように設定して、ファイルの中身を
   参照することができないようする
   AddHandler cgi-script htpasswd     ※.htpasswdではない(ドットなし)


④MIMEタイプ・文字コードの指定
1.拡張子に対するMIMEタイプの追加指定
AddType image/png png
AddType image/gif gif
AddType image/jpeg jpg jpeg

2.文字コードの指定
AddType "text/xml; charset=utf-8" xml rdf
AddType "text/html; charset=utf-8" html htm
AddType "text/plain; charset=Shift_JIS" txt

3.SSIやPHPを拡張子に関わらず使用できるようにする。
AddType text/x-server-parsed-html shtml html 
(.shtmlまたは.htmlでSSIを使用可能にする。)
AddType application/x-httpd-php php html 
(.phpまたは.htmlでphpを使用可能にする。)

4.DefaultType/ForceTypeディレクティブ(未知のファイルに対して)
[/public_html .htaccess]
DefaultType "text/html; charset=utf-8" 
[/public_html/style .htaccess]
DefaultType "text/css; charset=Shift_JIS"
[/public_html/gif .htaccess]
ForceType image/gif
[/public_html/png .htaccess]
ForceType image/png

DefaultType:拡張子がファイル名に含まれていない未知のファイルのみに働きかける。
ForceType そのディレクトリおよびサブディレクトリにあるファイルの MIMEタイプを
          統一して提供するように働きかける。 ※要注意!

⑤ディレクトリ制御
1.デフォルトファイルの設定
[/で終わるURIにアクセスする時、top.htmlが最初に呼ばれる。]

DirectoryIndex top.html
[/で終わるURIにアクセスする時、最初左の記述から優先的にファイルを探していく。]
DirectoryIndex index.html index.htm index.shtml index.cgi index.php

2.ディレクトリ表示を禁止する。
Options -Indexes
(指定ファイルがない場合のファイルのインデックス表示を禁止する。)


⑥キャッシュ制御
1.キャッシュしないようにする。(頻繁に更新されるリソースに適用する。)
<Files ~ "\.(html|php|jpe?g|gif|png)$">    (対象ファイル)
Header set Pragma no-cache            (HTTP/1.0用)
Header set Cache-Control no-cache       (HTTP/1.1用)
</Files>


⑦HTTPリダイレクト
1.クライアントプル
<meta http-equiv="refresh" content="10;url=http://w3g.jp/new/">
文書を読み込んでから何秒後に指定のURLにジャンプさせるかを指定する。

2.HTTPリダイレクト
Redirect permanent /old/ http://w3g.jp/new/
old」というディレクトリ以下のファイルにアクセスがあった場合に、自動的に「new
というディレクトリ以下にある同じファイル名をもつファイルへと HTTPリダイレクトさせる。
permanentオプションで、そのリソースが恒久的に別の場所へ移動したことを伝える。
注意)
転送先と転送元のディレクトリ名が被ることのないように注意(永久ループする。)

3.正規表現を使用したHTTPリダイレクト
Redirect permanent /old/ http://w3g.jp/new/
ファイル名はそのままで拡張子だけを変えて移動先のリソースを要求することも可能
RedirectMatch permanent (.*)post(.*)¥.php$ http://w3g.jp/new/
URI に"post" という文字列を含み、拡張子が ".php" であるファイルへとアクセスが
あった場合に http://w3g.jp/new/ 以下へと HTTPリダイレクトを行う。

4.HTTPリダイレクトのオプション

オプション説明 
Redirectどのステータスを返すかのオプション部分を省略した表記。デフォルトの Redirectディレクティブに tempオプションを指定した場合と同じ 302 Moved Temporarilyステータスコードを返す。オプションをつける場合は permanent, temp, seeother, gone の4つがある。
Redirect permanent301 Moved Permanentlyステータスコードを返す。要求されたリソースが、永久(恒久的)に別の場所へ移動したことを伝え、今後はそちらをリクエスト(要求)するように UA へ促す。
Redirect tempRedirectディレクティブの初期値。302 Moved Temporarilyステータスコードを返す。要求されたリソースが、一時的に指定の場所へ移動していることを UA に伝える。
Redirect seeother303 See Otherステータスコードを返す。要求されたリソースが他の別のリソースで置き換えられたことを UA に伝える。
Redirect gone
410 Goneステータスコードを返す。要求されたリソースが永久に削除されたことを UA に伝える。goneオプションの場合は、値に URI を記述してはいけない(記述する必要がない)。
RedirectPermanentRedirectディレクティブの permanentオプションを指定した場合と同じ、301 Moved Permanentlyステータスコードを返す。要求されたリソースが、永久(恒久的)に別の場所へ移動したことを伝え、今後はそちらへリクエストするよう UA に促す。
RedirectTempRedirectディレクティブ、または Redirectディレクティブの tempオプションを指定した場合と同じ、302 Moved Temporarilyステータスコードを返す。要求されたリソースが、一時的に指定の場所へ移動していることを UA に伝える。




最終更新日 ( 2009/02/12 木曜日 12:02:52 JST )
 
次へ >
© 2010 joomla
Joomla! is Free Software released under the GNU/GPL License.
Translation is Joomla!JAPAN