• ベストアンサー

特定の動的ページに対してステータスコード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的に、故意にページを隠しているような感じがして、出来る限り、利用したくないと考えたのです。 特定の動的ページを検索エンジンから削除させることについて、経験のある方などがいらっしゃれば、参考にさせて頂きたいと思います。

  • PHP
  • 回答数3
  • ありがとう数8

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

  • ベストアンサー
回答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

関連するQ&A

  • インデックスに登録されたページの総数

    ページ内に <meta name="robots" content="noindex"> <meta name="robots" content="nofollow"> を入れてるのですが ウェブマスターツールで インデックス ステータス 昨年のデータを表示 を見たら、 インデックスに登録されたページの総数 308 となっています。 これはどういう事でしょうか? <meta name="robots" content="noindex"> <meta name="robots" content="nofollow"> はクロールされないためのソースだと思っていたので インデックスに登録されたページの総数は、0になると思っていたのですが。 ちなみにトップページだけではなく 全てのページに <meta name="robots" content="noindex"> <meta name="robots" content="nofollow"> を入れています。

    • ベストアンサー
    • HTML
  • 特定のページを検索エンジンにインデックスしない方法

    特定のページを検索エンジンにインデックスしない方法として meta文に noindex 等をしたり、robots.txtを設定すれば良いのですが、 それとは別に、meta文や robots.txt の一切設定できないサーバーで、 かつ、他のページは通常通りインデックスさせなければいけないのですが 特定のページをインデックスしない方法はありますでしょうか? そのページはphpで生成されており、?xxxx=xxxのようなものもアドレスに含みます。 #極端な話、「特定のokwaveの質問回答をgoogle等から検索できないようにできませんか?」と  同じ部類の質問です。 よろしくお願いします。。

    • 締切済み
    • SEO
  • META NAME="ROBOTS" CONTEN

    <META NAME="ROBOTS" CONTENT="INDEX,FOLLOW"> はあってもなくても、実際はSEO的には無意味なのですか? でも、noindex,nofollowは意味があるんですよね?

    • ベストアンサー
    • SEO
  • ロボット検索のnofollowについて

    よろしくおねがいします。 検索されたくないので <META NAME="Robots" CONTENT="noindex, nofollow"> というタグ?を入れようと思っています。 HTMLの内容は (1) 自分の趣味などのこと(私は薔薇が好きです) (2) 上記のイメージを別ページで開く為のリンク(薔薇のgif600×600) (3) 花屋さんのリンク(薔薇を買ったのはこのお店です。) このような場合、 <META NAME="Robots" CONTENT="noindex, nofollow"> を入れてしまうと、 (3)にも影響が出てしまうのでしょうか? (1)(2)は自分で作成したものなので検索されたくありません。 (3)は検索された方が良いです。 記述例として、 CONTENT="noindex, nofollow" … そのページとリンク先ページの収集を許可しない とありました。 http://www.tagindex.com/html_tag/page/meta_03.html (3)が複数あった場合、などどうしたら良いのか悩みます。 よろしくお願いします。

    • ベストアンサー
    • HTML
  • どの検索エンジンでも検索されないのでしょうか?

    <meta name="robots" content="noindex"> <meta name="robots" content="nofollow"> このタグをソースに居れていれば URLをダイレクトに打たない限り どの検索エンジンでも検索されないのでしょうか?

    • ベストアンサー
    • HTML
  • 検索エンジン用METAタグについて

    http://www.juraihelm.com/NNR/ (1)<META NAME="ROBOTS" CONTENT="NONE"> <META NAME="ROBOTS" CONTENT="NOINDEX,NOFOLLOW"> そのページと、そこからリンクしている全てのページを制限する。 (2)<META NAME="ROBOTS" CONTENT="INDEX,NOFOLLOW"> そのページのみを許可し、そこからのリンクを制限する。 index.htmlに使うと便利。 (3)<META NAME="ROBOTS" CONTENT="INDEX"> そのページの登録を許可する (4)<META NAME="ROBOTS" CONTENT="NOINDEX,FOLLOW"> そのページを制限し、そこからのリンクを許可する。 このような使い方は普通しない。 (5)<META NAME="ROBOTS" CONTENT="ALL"> 下の階層ページの巡回を許可する。 このような設定は、わざわざすることでもない。 ---------------------------------------- 上は検索エンジン用METAタグの説明サイトです。 今回、ホームページの一部をアップロードします。同様のファイルが並列的に同じフォルダーの中に約40個あります。相互にリンク設定もあります。 この場合、放置すると、それぞれ個別に検索ロボットが拾い上げ、ヒット効率が著しく低下します。これらのうち、一つのページだけ検索エンジンに掲載され、他は載らないようにMETAタグを設定したいのです。 ■(4)のタグを設定しようと思いますが、これでいいのでしょうか。「このような使い方は普通しない。」という記載が気になります。 ■「そこからのリンクを制限する」とは、リンクしたページの拾い上げもしないということでしょうか。 教えてください。

  • HTMLにこのような

    記述があります。 --------------------------------------------------- <META name="ROBOTS" content="NOINDEX"> <META name="ROBOTS" content="NOFOLLOW"> <META name="ROBOTS" content="NOINDEX, NOFOLLOW"> <META name="ROBOTS" content="NONE"> <META name="robots" content="noindex"> <META name="robots" content="nofollow"> <META name="robots" content="noindex, nofollow"> <META name="robots" content="none"> ----------------------------------------------- これはどんな記述でしょうか?巡回ロボットを回避する 記述でしょうか? 自分でこれを記述した記憶がありません。

    • ベストアンサー
    • HTML
  • 検索避けのメタタグの数と効果

    現在は、3個程度入れているのですが、とあるサイトで下記くらい入れることをオススメされていました。 <META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW"> <meta NAME="ROBOTS" CONTENT="NOINDEX"> <meta NAME="ROBOTS" CONTENT="NOFOLLOW"> <meta NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW"> <meta NAME="ROBOTS" CONTENT="NONE"> <meta NAME="robots" CONTENT="noindex"> <meta NAME="robots" CONTENT="nofollow"> <meta NAME="robots" CONTENT="noindex, nofollow"> <meta NAME="robots" CONTENT="none"> <meta NAME="LIBWWW-PERL" CONTENT="NOINDEX"> <meta NAME="LIBWWW-PERL" CONTENT="NOFOLLOW"> <meta NAME="LIBWWW-PERL" CONTENT="NOINDEX,NOFOLLOW"> <meta NAME="LIBWWW-PERL" CONTENT="NONE"> <meta NAME="libwww-perl" CONTENT="noindex"> <meta NAME="libwww-perl" CONTENT="nofollow"> <meta NAME="libwww-perl" CONTENT="noindex,nofollow"> <meta NAME="libwww-perl" CONTENT="none"> <META http-equiv="robots" content="noindex"> <META http-equiv="robots" content="nofollow"> <META NAME="GOOGLEBOT" CONTENT="NOINDEX, NOFOLLOW"> <META NAME="GOOGLEBOT" CONTENT="NOARCHIVE"> <META NAME="GOOGLEBOT" CONTENT="NOSNIPPET"> <meta name="robots" content="noimageindex"> <meta name="robots" content="noimageclick"> <meta name="Expires" content="August 31, 2003"> 3個程度と上のタグを全部入れるのとでは、やはり違ってくるのでしょうか? 手間ではないので、効果があるのなら入れたいと思っています。 どうぞ宜しくお願い致します。

  • ホームページのロボット制御について

    ホームページのロボット制御について疑問があります。 index.html(トップページ)だけはロボットの登録対象にしたいが、その他の全ページは すべて登録対象にしない場合のメタタグについてなんですが、調べたら index.html(トップーページ)には <META NAME="ROBOTS" CONTENT="NOFOLLOW">を記述しこのページを登録対象にし、かつこのページのリンクを辿らないようにする。 それ以外のファイルはすべて <META NAME="ROBOTS" CONTENT="NOINDEX,NOFOLLOW">と記述すると書いてありました。 しかし、そもそもindex.htmlに記述したメタタグによってindex.htmlページ内のリンクを辿らないわけなので、その他のファイルにあえてメタタグを何も書かなくてもその他のファイルはindex.htmlから辿られず、インデックス化されない気がするんですがどうなんでしょうか? a.htmlやb.htmlなどその他の全ファイルにも <META NAME="ROBOTS" CONTENT="NOINDEX,NOFOLLOW">と記述しないといけないんですかね?

    • ベストアンサー
    • HTML
  • SEO対策について質問です。

    TOPページのみが検索対象となるように、 「index.html」以外のファイルには、<meta name="robots" content="noindex,nofollow"></meta>のタグを設定し、 検索対象から除外しております。 このようなタグを設定している場合でも、「index.html」以外のファイルの<title>タグに設定したキーワードを検索対象とし、 「index.html」ファイルがヒットされるでしょうか。 もし無理ならば、どのようなタグをどこに設定すれば、 <meta name="robots" content="noindex,nofollow"></meta>タグを設定している場合でも、 「index.html」以外のファイルの<title>タグに設定したキーワードを検索対象とし、「index.html」ファイルがヒットされるでしょうか。 正確な情報を、極力迅速に御回答頂ければ幸いです。

専門家に質問してみよう