PHP:ページが見つかりませんのサイトを別のページに飛ばしたい

PHPのロゴ PHP

仕事上でQRコードを印刷したポスターを大量に配布したあと、QRコードで表示されるページが存在しないことに気づきあわてふためいていた時に取った方法。

今回の例では、QRコードのURLが、自分のサイト上の存在しないURLになっていた。
つまりは、

「404 Not found」(ページが見つかりません)

これはかなりカッコ悪い。

このサイトは、ワードプレスでの運用だったため、そのテーマのフォルダの404.phpというファイルを編集した。
この場合、リダイレクトという方法を使えば良い。

[box class=”box26″ title=”ちなみにリダイレクトとは?”]
ホームページのサイトをあるサイトから別のサイトに遷移させることを指します。

例として
一時的にhttps://hoge.com/でアクセスしてきた人をhttps://hoge.com/2nd/に移動させたいときなどによく使います。
[/box]

PHPでのリダイレクト記述方法

header('Location:遷移先のURL');

例えば、https://dianxnao.com/に遷移させたいなら

header('Location:https://dianxnao.com/');

と記述すれば良い。

今回ワードプレスのファイルを編集した方法

例として、ワードプレスのテーマ名称が「rocker」だったとします。

wp-contentthemes > rocker

に移動し、404.phpファイルをダウンロードします。
[alert title=”注意”]このまま編集してしまうと何らかの不具合が生じた時、復旧出来なくなるため元のファイル(404.php)のバックアップは取っておきます。
[/alert]

この404.phpの先頭で、

<?php
	header('Location:移動先のURL');
	exit;
	
	// 元のプログラム
	// 	:
	//	:
?>

として書き換え、元の位置にアップロードします。

これであなたのサイトにアクセスしてきた人があなたのサイトの存在しないURLにアクセスしようとしてもリダイレクトしてくれます。
header命令の後にexitを入れておけば、その下のプログラムは実行しません。
元のプログラムはそのまま残しておきたいときはこうしておけば大丈夫です。

でもよくよく考えたら、企業や商用サイトであれば、この404 Not Foundページで色々と宣伝を行ってもいいですよね。
これからは、「ページが見つかりません」のページの見た目や内容をもっと面白いものに変えても良いな、と思いました。

コメント

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