.htaccess (Apache HTTP Server) によるリダイレクト設定方法
.htaccessファイル (分散設定ファイル) を使用すると、Webサーバーのディレクトリ毎に設定を変更することができます。 多くの場合、Webサーバーのあるディレクトリを間借り (レンタル) する形でサーバーを確保しWebサイトをインターネット上に公開していると思います。 したがって、ディレクトリ毎に設定を変更できないとなると具合が悪い場合が出てくる訳です。 このWebサイトはロリポップのWebサーバーをレンタルしており、サーバーの仕様はApache1.3.xxかつ.htaccessの使用が許可されています。
Apache チュートリアル:.htaccessファイルによると、一般的に.htaccessファイルの使用はサーバーの主設定ファイルにアクセスできない場合を除き、極力避けるべきとのことです。 しかしながら、Webサーバーを間借りしている私たちユーザーはサーバーシステムのrootアクセス権限を持ってませんから、.htaccessファイルを使用することは仕方がないことです。 ただし、.htaccessファイルの使用を許可している場合はサーバーの性能を (その程度はわかりませんが) 低下させることになるようです。
Redirectディレクティブ/Apache HTTP Server
下記条件の場合のリダイレクト設定は、次の例のように.htaccessファイルへ記述します。
- 301リダイレクト (恒久的リダイレクト)
-
旧URL (リダイレクト元) :
http://www.double-cradle.jp/2008/10/02/00145.html -
新 URL (リダイレクト先) :
http://www.double-cradle.jp/archive_of_2008/100200145.html -
.htaccess ファイル設置場所 :
http://www.double-cradle.jp/index.htmlがあるディレクトリに設置。
例
Redirect permanent /2008/10/02/000145.html http://www.double-cradle.jp/archive_of_2008/1002000145.html
Redirectディレクティブ 説明: クライアントが違うURLを取得するように外部へのリダイレクトを送る 構文: Redirect [status] URL-path URL
- Redirect
-
Redirectディレクティブは、古いURLを新しいURLへマップします。 クライアントは、新しいURLを返されるともう一回取得しようとします。 URL-pathで始まるドキュメントへのすべてのリクエストには、URLで始まる新しいURLへのリダイレクトエラーが返されます。
上の図はFirefoxのアドオンであるFirebugでモニターしたHTTPヘッダー情報です。 確かに新しいURL (レスポンスヘッダーのLocation参照) と “301” というリダイレクトエラーが返されています。
- [status]
-
status引数を省略した場合は、一時的に移動したことを意味する “302リダイレクト” になります。 statusの値にHTTPステータスコードを指定することもできます。
- permanent: 永久にリダイレクトをするステータス (301) を返します。 これは、リソースが永久に移動した、ということを意味します。
- temp: 一時的なリダイレクトステータス (302) を返します。 これがデフォルトです。
- seeother: “See Other” ステータス (303) を返します。 これは、リソースが他のもので置き換えられたことを意味します。
- gone: “Gone” ステータス (410) を返します。 これは、リソースが永久に削除されたことを意味します。 このステータスが使用された場合、url引数は省略されなければなりません。
- URL-path
-
リダイレクト元になるURLです。 DocumentRootから見たパスで、かつ “/” (スラッシュ) から始まるものになります。 上記の例で言うと、http://www.double-cradle.jp (ドメイン名) を省略したパスです。
- URL
-
リダイレクト先になるURLです。 “http://” で始まる絶対URLで記述します。
Redirectディレクティブ記述上の注意点
Redirectとstatus、statusとURL-path、URL-pathとURLの間には、半角スペースを入れます。 そして、URLの直後に必ず改行を入れます。
単一のファイル同士のリダイレクトだけでなく、ディレクトリ構造そのままにリダイレクトさせることも可能です。
例
Redirect permanent /2008/ http://www.double-cradle.jp/archive_of_2008/
“http://www.double-cradle.jp/2008/” の下層にあるファイルにアクセスした場合リダイレクトされ、たとえば “http://www.double-cradle.jp/2008/01234.jpg” へのアクセスは、
“http://www.double-cradle.jp/archive_of_2008/01234.jpg” へリダイレクトされます。
構文にミスがあった場合、たとえばRedirectの綴りをRedairectと間違った場合などは、“500 Internal Server Error” が表示されますから、サーバーから.htaccessファイルを削除し、正しい.htaccessファイルをアップロードします。
Archive [Webサイト作成・運営関連]