PHPでアドレスが変わったことを検索エンジンに知らせる

11月 11th, 2007 admin Posted in PHP |

あるサイトをmod_rewriteを使ってパーマリンク化している。
せっかく検索エンジンに数百ページインデックスしてもらっているのにすべてが無駄になるのはもったいないし
少なからずアクセスしてくれている人にも申し訳ない。
そこで旧アドレスにアクセスしてきた人には301を返してリダイレクトするようにした。

<?php
  $url = $_SERVER['REQUEST_URI'];
  if(preg_match("/.*pref_id=([0-9]+)/",$url,$regs)){
    header( "HTTP/1.1 301 Moved Permanently" );
    header( "Location: http://".$_SERVER['HTTP_HOST']."/city/summary/".$regs[1] );
    exit;
  }
?>

.htaccessのほうでやればいいんだけど、なぜか出来なかったのでPHPでやったという例

追記:
どうもphpがCGIモードだったようで正しく301リダイレクトされていなかった。はてなで聞いたらエスパー的な人が教えてくれた

<?php
header('Status: 301 Moved Permanently');
header('Location: http://example.com');
exit;
?>

Leave a Reply