- ベストアンサー
特定の動的ページに対してステータスコード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的に、故意にページを隠しているような感じがして、出来る限り、利用したくないと考えたのです。 特定の動的ページを検索エンジンから削除させることについて、経験のある方などがいらっしゃれば、参考にさせて頂きたいと思います。
- みんなの回答 (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を指定してください"; } ?>
その他の回答 (2)
- NickAomori
- ベストアンサー率40% (11/27)
的はずれでしたら、すみません 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はサーバー上にない状態で
お礼
有り難うございました。前者のご提案のような回答を期待しておりました。 この場合、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)
<?php if ($_GET['page'] == "B") { header("HTTP/1.1 404 Not Found"); exit; } ?>
- 参考URL:
- http://jp.php.net/header
お礼
よく理解できました。 ご丁寧に有り難うございました。助かりました!