• ベストアンサー

特定の動的ページに対してステータスコード404を返す方法

例えば、 index.php?page=A index.php?page=B  このページだけ、ステータスコード404を返したい index.php?page=C ということは可能でしょうか? これは、検索エンジン対策として、未使用のページに対して、「404 Not Found」とさせたいのです。phpもしくは.htaccessなどで対応できるのでしょうか? 現在は、 <meta name="ROBOTS" content="NOINDEX, NOFOLLOW" /> と記述して対応しているのですが、どうも、SEO的に、故意にページを隠しているような感じがして、出来る限り、利用したくないと考えたのです。 特定の動的ページを検索エンジンから削除させることについて、経験のある方などがいらっしゃれば、参考にさせて頂きたいと思います。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

#2です コードは以下のような感じになると思います <?php if($_GET['page']=='A'){ }elseif($_GET['page']=='B'){ header("HTTP/1.0 404 Not Found"); ?> <html> <head> <title></title> </head> <body> <p>このページは終了しました。</p> </body> </html> <?php exit; }elseif($_GET['page']=='C'){ }else{ print "pageを指定してください"; } ?>

wdwdwd
質問者

お礼

よく理解できました。 ご丁寧に有り難うございました。助かりました!

その他の回答 (2)

回答No.2

的はずれでしたら、すみません if($_GET['page']=='B'){ header("HTTP/1.0 404 Not Found"); exit; } もしくは、 if($_GET['page']=='B'){ header("Location: http://hogeghohe.jp/nothing.php"); exit; } nothing.phpはサーバー上にない状態で

wdwdwd
質問者

お礼

有り難うございました。前者のご提案のような回答を期待しておりました。 この場合、exitしていますので、メッセージなどが表示されませんね。 HTMLページを表示させたい場合は、以下のように、HTMLの前に記述すれば良いのでしょうか? if($_GET['page']=='B'){ print'<?php header("HTTP/1.0 404 Not Found"); ?> <html> <head> <title></title> </head> <body> <p>このページは終了しました。</p> </body> </html>'; }

  • php504
  • ベストアンサー率42% (926/2160)
回答No.1

<?php if ($_GET['page'] == "B") { header("HTTP/1.1 404 Not Found"); exit; } ?>

参考URL:
http://jp.php.net/header