PHP header関数で301リダイレクトする方法

header関数で301リダイレクト

header関数は3つの引数が指定出来ます。第一引数にリダイレクト先のURL、第二引数は “true” を指定すると同じヘッダを上書きします ( ※ “false” は同じヘッダを生成) 。第三引数はHTTPステータスコードを指定します。

<?php
header('Location: https://analyzegear.co.jp/blog/', true, 301); 
exit;

WordPress テーマの404.php にリダイレクト処理を追加

“http://example.com/wp_dir/” などのURLでしばらくWordPressサイトを運用した後に “http://example.com/” に変更する場合、新URLにリダイレクト処理を入れる必要があります。

以下のコードは 404.php の get_header() を呼ぶ前にリダイレクト処理を入れてスムーズに新URLに移行出来るようにします。

<?php
/**
 * リダイレクト
 */
//現在のURLを取得する
$request_uri = $_SERVER['REQUEST_URI'];
//対象ディレクトリ
$target_str  = 'wp_dir/';
//URLに対象ディレクトリの文字列が含まれるかチェック
if(strpos($request_uri, $target_str) !== false){
    //リダイレクト先のURL
    $redirect_uri = str_replace($target_str, '', $request_uri);//置換
    $redirect_url = home_url().$redirect_uri;    
    //リダイレクト実行
    header('Location: '.$redirect_url, true, 301);
    exit;
}

動作環境情報

エックスサーバー(x10)
PHP 7.3.14

コメント

タイトルとURLをコピーしました