CodeIgniter4で特定のページにアクセスがあった際に301リダイレクトさせる方法
CodeIgniter4で特定のページにアクセスがあった際に301リダイレクトさせたい。調べたところ.htaccessファイルでの対応ではなく、redirect()関数に引数を指定することで対応できる模様。以下にソースコード及びリファレンスのメモ。
目次
Redirect()関数
リファレンス
https://codeigniter4.github.io/userguide/outgoing/response.html#redirect-status-code
ソースコード
/app/Config/Routes.php
#301リダイレクトテスト $routes->add('/redirect_test', 'Test_Controller::index');
/app/Controllers/Test_Controller.php
<?php namespace App\Controllers; class Test_Controller extends BaseController { public function index() { return redirect()->to('/', 301); } }
「https://test.com/codeigniter4/redirect_test」をブラウザから開くと「https://test.com/codeigniter4/」に301リダイレクトされるのが確認できる筈。
その他
ステータスコードを指定しない場合
上記のソースコードだと「redirect()->to('/', 301);」とステータスコードを301に指定しているが、指定しない場合は302リダイレクトされた。また、リファレンスに以下案内がある。
GETリクエストのデフォルトのHTTPステータスコードは 302 です。ただし、HTTP/1.1 を使用する場合は、以降では、POST/PUT/DELETE リクエストには303が使用され、その他すべてのリクエストには 307 が使用されます。
ステータスコード「301 / 302 / 303 / 307」の違いについて
301 / 302しか知らないので調べたところ以下のような違いがあった。
- 301 → 恒久的なリダイレクト
- 302 → 一時的なリダイレクト
- 303 → 一時的なリダイレクト。尚且つリダイレクト先にはGETメソッドでリダイレクト
- 307 → 一時的なリダイレクト。尚且つリダイレクト先にはリダイレクト元のメソッド(GET / POST等)を引き継いでリダイレクト
関連記事
-
-
CodeIgniter4でのメール送信方法(テキスト・HTMLメール)
CodeIgniter4.4.4でテキストメール及びHTMLメールを送信したい。 ...
-
-
CodeIgniter4の各種設定項目のまとめ記事
CodeIgniter4.4.4の各種設定項目を後から確認できるようまとめておき ...
-
-
CodeIgniter4でコントローラ実行の前後に指定したイベントを実行する方法
CodeIgniter4で特定の条件の場合は指定したページにリダイレクトさせたい ...
-
-
CodeIgniter4.4.4のインストールからHello Worldページ表示まで行う方法
以前CodeIgniter3を勉強したことがあったが新バージョンの4系がリリース ...
-
-
CodeIgniter4 & reCAPTCHA でお問い合わせフォームを作成する方法
以前CodeIgniter4.4.4で簡易的なお問い合わせページを作成したが、今 ...