ページ転送(リダイレクト)
http://extstrg.asabiya.net/pukiwiki/index.php?%A5%DA%A1%BC%A5%B8%C5%BE%C1%F7%28%A5%EA%A5%C0%A5%A4%A5%EC%A5%AF%A5%C8%29目次
概要 †
ドメイン変更などの最の別ページへの転送設定。
Java Script †
使い方 †
転送したいパスに以下の内容のindex.htmlを配置し、【転送先PATH】に転送先を書き込む。
サイト内での転送に使用する。
- index.html
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="uft-8"> <script> setTimeout("location.href='【転送先PATH】'",0); </script> <title>redirect</title> </head> <body> </body> </html>
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 に自サイトを指定すると、常に循環の危険がつきまとうため注意が必要である。
Last-modified: 2019-01-03 (木) 23:32:28 (1940d)