Help us understand the problem. What is going on with this article?

phpでリダイレクト(301)

More than 5 years have passed since last update.

突発的に、ほとんど知識のないphpでリダイレクト処理を記述することになり。
その時のメモ。

結果的に採用した記述内容

301を指定して、Locationにリダイレクト先のURL(絶対パス)を記述する。

<?php
header( "HTTP/1.1 301 Moved Permanently" ); 
header( "Location: http://***.jp/" ); 
exit;
?>

記述内容について確認した点

  1. header関数より前に一切の記述がないこと(それ以降の記述はそもそも読み込まれない)
  2. 301の指定があること
  3. exitしていること(※ 2015/05/21追記)

(※ 2015/05/21追記)
✕「それ以降の記述はそもそも読み込まれない」
→ それ以降の記述も実行はされるので、「読み込まれない」は誤り。

すごく基本的な記述位置(上記 1.)に関することが分からなくて苦戦した。。
header関数の記述位置はDOCTYPE宣言よりもhtmlタグよりも前。

301と302

301は検索エンジンに蓄積されたデータも関連付けがされ引き継ぐことができるため、SEOを考慮すると重要。

  • 301 ・・・ 恒久的な移転(引越し)
  • 302 ・・・ 一時的な移転(いずれ帰ってくる短期・長期の旅行)

php以外のリダイレクト方法

時間の都合上phpで記述することがほぼ確定ではあったけど、一応それ方法以外も検討。

metaタグ(refresh)

遷移するまでの秒数を「0」にするとスパム判定がされペナルティがつけられるという説があり。
301, 302の指定もできないため、実装は手軽でリダイレクト自体の機能は十分に果たせるかもしれないが、広い目で見ると内容不十分。

<meta http-equiv="refresh" content="0(遷移するまでの秒数);URL=http://***.jp/">

.htaccess

301の指定も可能。
phpが1ページずつ個別に記述する必要があるのに対し、1ファイルにまとめて記述でき、
その内容もファイル別、ディレクトリ別など、より多岐にわたった指定が可能。

RewriteEngine on
RewriteRule ^***.html$ http://***.jp/***.html [R=301,L]

できることならリダイレクトは.htaccessで設定したかったな

設定内容の詳細度や管理面を考慮すると、
.htaccessで設定できるならそれに越したことがなさそうだな、という印象。

次回からもうちょっと先手打って検証しよう。。

sin_per
コーヒーと肉。 2019年11月から認定NPO法人フローレンスでWebディレクターとして働いています。
https://florence.or.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした