.htaccess - mod_alias

Alias ディレクティブ

Alias ディレクティブは、ドキュメントを DocumentRoot ディレクティブで設定した ディレクトリパス以外の場所に保存することを可能にします。指定した url-pathfile-path、または directory-path を参照します。

# Alias ディレクティブの設定例
Alias URL-path file-path|directory-path
Alias ディレクティブの設定例

下記の例では、/image ディレクトリへのリクエストに対して、サーバは /ftp/pub/image ディレクトリを返します。

# Alias ディレクティブの設定例
Alias /image /ftp/pub/image
Alias ディレクティブの設定例

本ディレクティブは、完全なパスセグメントが一致した場合のみ処理されます。そのため、url-path の最後に / を付けた場合、例えば /image//image という URL にエイリアスされません。

また、本ディレクティブと他のディレクティブとの処理の順番に注意して下さい。複数の Alias ディレクティブや、Redirect ディレクティブが同じ設定ファイルの中にある場合は、常に Redirect が先に処理されます。次に Alias が上から順番に適用され、最初にマッチングした設定が優先されます。

Redirect ディレクティブ

Redirect ディレクティブは、クライアントへリクエストした URL とは異なる URL を取得するように外部へのリダイレクトを送ります。リダイレクト元の URL は、/ で始まるパスである必要があります。リダイレクト先の URL は、http: などのスキームで始まる絶対 URL を指定するべきですが、/ で始まるものも使用可能です。その場合は、現在のスキームとホスト名が追加されてリダイレクトされます。

# Redirect ディレクティブの設定例
Redirect /service http://foo.example.com/service
Redirect ディレクティブの設定例

本ディレクティブは、パスセグメントが完全に一致したものがマッチします。正規表現を使ったより複雑なマッチングを行いたい場合は、RedirectMatch ディレクティブを参照して下さい。

また、本ディレクティブでは、status を与えることで、HTTP ステータスコードを返すことができます。status が指定されていないリダイレクトの場合は、"temporary" (HTTP ステータス 302) になります。

Redirect ディレクティブの Status 引数一覧
説明
permanent恒久的にリダイレクトをするステータス (301) を返します。これはリソースが恒久的に移動したということを意味します。
temp一時的なリダイレクトをするステータス (302) を返します。
seeother"See Other" ステータス (303) を返します。これはリソースが他のもので置き換えられたことを意味します。
gone"Gone" ステータス (410) を返します。これはリソースが恒久的に削除されたことを意味します。このステータスが使用された場合、リダイレクト先の URL は省略されなければなりません。
(ステータスコード)ステータスコードを数値で与えることで他のステータスコードも返すことができます。ステータスコードが 300 ~ 399 までの場合、リダイレクト先 URL は存在していなければいけません。その他のステータスコードの場合は、省略されていなければなりません。
# Redirect ディレクティブの設定例
Redirect permanent /one http://example.com/two
Redirect 303 /three http://example.com/other
Redirect ディレクティブの設定例

RedirectMatch ディレクティブ

RedirectMatch ディレクティブは、Redirect ディレクティブとほぼ同じですが、正規表現を用いたマッチングを行う点が異なります。以下の例では、すべての GIF ファイルを別サーバの同じ名前の JPEG ファイルに後方参照を利用してリダイレクトしています。

# RedirectMatch ディレクティブの設定例
RedirectMatch (.*)\.gif$ http://www.anotherserver.com$1.jpg
RedirectMatch ディレクティブの設定例

RedirectPermanent ディレクティブ

RedirectPermanent ディレクティブはクライアントに Redirect が永久的なもの (ステータス 301) であることを知らせます。Redirect ディレクティブの permanent ステータス設定と同じです。

RedirectTemp ディレクティブ

RedirectTemp ディレクティブはクライアントに Redirect が一時的なものである (ステータス 302) ことを知らせます。Redirect ディレクティブの temp ステータス設定と同じです。

関連記事

Category:
プログラミング
公開日:
更新日:
Pageviews:
13
Shares:
0
Tag:
.htaccess
Apache
HTTP
Server