目次

概要

ドメイン変更などの最の別ページへの転送設定。

METAタグ

使い方

転送したいパスにindex.html を配置し、以下のMETAタグのみを書き込む

<meta http-equiv="refresh" content="0;URL='http://【転送先URL】/'"/>

mod_rewrite

使い方

該当するディレクティブ内にRedirectの設定を行なう。

  • 書式
    Redirect url-path url
    Redirect status url-path url
  • Redirect /~user/ http://user.original.ne.jp/
    Redirect permanent /~user/ http://user.original.ne.jp/
  • url-path
    リクエストがあった場合、改めて url へアクセスするようにクライアントに返します。上記の例が施された設定では、サーバ内の /~user/info.html にリクエストが合った場合、別サーバの http://user.original.ne.jp/info.html を探すようにクライアントに伝えます。
    url-pathは絶対パスで記述しなければなりません。
    引数 status はオプションです。status を指定すると、クライアントにリダイレクトの理由を伝えることができます。省略時は temp です。status の種類は以下のとおりです。
  • Redirect permanent
    301 Moved Permanently ステータスが返されます。リソースが、すでに別の場所へ移動したことを伝え、今後はそちらへリクエストするよう促します。
  • Redirect temp
    302 Moved Temporarily ステータスが返されます。リソースが、一時的に移動していることを伝え、今後も今の URL でリクエストしつづけるよう促します。デフォルトです。
  • Redirect seeother
    303 See Other ステータスが返されます。リソースが、通常に移動された時に使用します。
  • Redirect gone
    410 Gone ステータスが返されます。リソースが、恒久的に移動し url パラメータを省略した時に使用します。

無限ループの可能性

Redirect を使った無限ループのコンフィグレーション

http://www.myserver.ne.jp/~user/〜 からのアクセスをすべて
http://www.myserver.ne.jp/~user/new/〜 にリダイレクトさせる

という前提で次のようなコンフィグレーションを記述したとすると無限循環にはまることとなる。

Redirect /~user/ http://www.myserver.ne.jp/~user/new/

実際に http://www.myserver.ne.jp/~user/ へアクセスすると、無限循環になります。アクセスログを参照すると以下の様に無限循環していることが分かる。

ブラウザの要求: http://www.myserver.ne.jp/~user/
サーバの返答 : http://www.myserver.ne.jp/~user/new/ リダイレクトせよ
ブラウザの要求: http://www.myserver.ne.jp/~user/new/
サーバの返答 : http://www.myserver.ne.jp/~user/new/new/ リダイレクトせよ
ブラウザの要求: http://www.myserver.ne.jp/~user/new/new/
サーバの返答 : http://www.myserver.ne.jp/~user/new/new/new/ リダイレクトせよ
ブラウザの要求: http://www.myserver.ne.jp/~user/new/new/new/
(無限・・・)

このように、リダイレクト後の URL も /~user/ にマッチしているのが原因です。外部 URL に自サイトを指定すると、常に循環の危険がつきまとうため注意が必要である。


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2018-11-09 (金) 11:16:26 (10d)