[CodeIgniter2] redirect()でページを転送する

公開
更新日

スポンサーリンク

CodeIgniterでアクセスを別のページに転送させるにはredirect()を使う。redirect()を使う場合、あらかじめURLヘルパーをロードしておく。

$this->load->helper('url');

これでredirect()が使えるようになる。

redirect()は第1引数で指定したURLに転送してくれる。

redirect( "http://domain.com/" );

上のように書くとhttp://domain.com/に転送してくれる。

第2引数、第3引数は省略可能だが、Windowsサーバーを使っている場合と、301リダイレクトを行う場合は省略せずに指定する。

第2引数は”location”か”refresh”を指定する。”location”の方が高速だがWindowsサーバーで問題が起きる場合があるようだ。Linuxサーバーの場合は特に問題がないようなので、高速なlocationを使っておけば良いだろう。

第3引数はレスポンスコードを指定する。redirect()がデフォルトで返すHTTP Response Codeは302となっている。302は一時的な転送であり、恒久的な転送の場合は301となる。

例えば、Googleがインデックス化したページURLがhttp://domain.com/exampleで、これをhttp://domain.com/page/exampleに変更したとする。この時、単にredirect( "http://domain.com/page/example" )というコードで転送すると、レスポンスコードが302なので検索エンジンに「これは一時的に転送しているだけですよ~」という誤ったメッセージを送ることになる。

redirect( "http://domain.com/page/example", "location", 301 )と書くことで初めてこれが恒久的な転送であり、http://domain.com/exampleでインデックス化されたページのURLはhttp://domain.com/page/exampleに永遠に変更されましたという意味になる。

スポンサーリンク


Comment