PHPで301、302リダイレクト

301/302リダイレクト

いつも忘れてしまうので、PHPで301リダイレクト、302リダイレクトをおこなう方法を書いておきます。

PHPで301リダイレクト

<?php
	header("HTTP/1.1 301 Moved Permanently");
	header("Location: http://example.com/");
	exit;

HTTPレスポンスコードを「301」とします。

もしくはこんな書き方でも大丈夫です↓

<?php
	header("HTTP/1.1 301 Moved Permanently");
	header("Location: http://example.com/", true, 301);
	exit;

headerタグが動かなかった時などのために、念のためexitを記述しています。
 

PHPで302リダイレクト

<?php
	header("Location: http://example.com/");
	exit;

302を明示的に指定しなくても、302リダイレクト扱いとなります。
 

PHPマニュアルに記載されているリダイレクトの書き方

<?php
	// 301 Moved Permanently
	header("Location: /foo.php",TRUE,301);

	// 302 Found
	header("Location: /foo.php",TRUE,302);
	header("Location: /foo.php");

	// 303 See Other
	header("Location: /foo.php",TRUE,303);

	// 307 Temporary Redirect
	header("Location: /foo.php",TRUE,307);

【引用】PHPマニュアル - header https://secure.php.net/manual/ja/function.header.php
 

【参考】metaタグによる301リダイレクト

	<meta http-equiv="refresh" content="0; URL=http://example.com/">

contentに何秒後にリダイレクトするかを指定しますが、0秒の場合は「301リダイレクト」、秒数を指定した場合には「302リダイレクト」と同等に扱われるます。

ただし、検索エンジンによっては正常に認識されない可能性もあるので、ご注意ください。
 

【参考】CakePHPでの301リダイレクト

<?php
	$this->redirect('/example', '301');

http://から始めて、絶対パスを指定することも可能です。
 

SEO目的などに合わせて、301リダイレクト、302リダイレクトを使い分けましょう!

プロから直接学べるプログラミングスクールの紹介!PHPコースあり!

自己流でプログラミングを覚えようとすると、環境設定でつまづく、書いたプログラムがなぜ動かないか解決できず、多大な時間を浪費してしまいがちです。

担当の指導者(メンター)が付いてくれるTechAcademyなら、分からないことをどんどん質問して解決できます!コードレビューしてもらえるのも素晴らしい点ですね。

【TechAcademy】家で学べるプログラミングスクール

Web制作会社が立ち上げたWebデザイナー育成スクール Web塾超現場主義

Web制作に実際に携わっている講師陣が、現場で通用するスキルを伝授します!卒業後は転職支援、仕事紹介などを行っており、フリーランス独立する道を探すこともできそうです。

また「独立・開業はちょっと...」という方へは、当社の制作案件をお手伝いして頂く道も開けます。
Facebookアカウントでコメント

※本コメント機能はFacebookによって提供されており、この機能によって生じた損害に対してザ サイベースは一切の責任を負いません。

301/302リダイレクト

ABOUTこの記事を書いた人

とみっち

埼玉でザ サイベースを主催しています。Webクリエイター。フリーランス歴7年。飄々と生きています。これでも育児頑張ってます。長野市出身。 @tomicci 詳しいプロフィール【興味】ギター/DTM/Web/車/田舎/旅/酒/育児 自然の音からデスメタルまで聴きます。【運営サイト】 ザ サイベース おと風景