2009-05-01 4 views
3

現在、私のPHPスクリプトでは、存在しない、またはそのユーザーに属していないコンテンツにアクセスしようとすると、ユーザーがカスタム404が見つかりませんでしたエラーページにリダイレクトされます。同様に:HTTPステータスコードをいつ送信しますか?

header('Location: http://www.mydomain.com/error/notfound/'); 
exit; 

私は上記のheader()呼び出しがデフォルトで302リダイレクトステータスコードを送信することを認識しています。

しかし、わからないことは、404が見つかりませんステータスコードを送信する必要があるときです。ユーザーをリダイレクトする前に?または、/error/notfound/ページを表示すると、

ありがとうございました!

答えて

12

を送る404のステータスヘッダ

  • を送信:

    header("HTTP/1.0 404 Not Found"); 
    include 'error.php'; 
    die(); 
    
  • +2

    ブラウザがHTTP/1.1を使用して接続するとどうなりますか? HTTP/1.1レスポンスを返すためにPHPがmod_phpでApacheを強制していますか? – Christian

    1

    404とロケーションを一緒に使用することはできません。場所はいくつかのレスポンス(201,3xx)に対してのみ有効です

    あなたの404応答の本体としてカスタムHTMLページを送ることができます。

    9

    リダイレクトとして404エラーは実行されません。

    404ステータスヘッダーを送信し、現在の出力を404ページの本文に置き換えます。

    これにはさまざまな方法があり、サイトの構造にかなり依存しています。 MVCアプリケーションは、通常これを前方に渡します。私は例外をスローする他のシステムを見てきて、登録された例外ハンドラが404ページの表示を担当します。いずれにしても

    、ラフ手順は

    1. ているコンテンツは、現在の実行のうちブレイク
    2. クリア任意の出力
    3. 無効で決定し、任意のがあるはずです。
    4. は、あなたがこのような何かを行う必要があります404ページのコンテンツ
    +0

    +1うまく説明します。特に、404エラーはリダイレクトとして実行されないことに言及して、私はそれが重要なポイントだと考えています。 –

    0

    あなたは404 HTTPステータスコードを送信する必要があります。ブラウザとcrawlersはこれを理解しています。あなたのサイトを検索するフォーム、Soundexリンクなどを含む、よりフレンドリーなエラーページを含めることもできます。

    0

    "リダイレクト"と "見つからない"というのは異なる概念です。

    どのファイルが見つかりましたか?
    http://www.mydomain.com/error/notfound/
    または
    http://www.mydomain.com/not_exist.html

    "http://www.mydomain.com/not_exist.html" ページには、404ヘッダーと "ページが見つかりません" の内容を持っている必要があります。

    クイックフィックスは次のようになります。

    header("HTTP/1.0 404 Not Found"); 
    readfile('http://www.mydomain.com/error/notfound/'); 
    exit; 
    

    しかし、これは2つのapacheの要求を必要とし、一種の厄介です。php.netから

    1

    2特殊なheaderコールがあります。最初の文字列は "HTTP /"(大文字と小文字は区別されません)という文字列で始まり、送信するHTTPステータスコードを特定するために使用されます。たとえば、ErrorDocumentディレクティブを使用してファイルの欠落に対する要求を処理するためにPHPスクリプトを使用するようにApacheを設定した場合は、スクリプトが適切なステータスコードを生成するようにすることができます。

    <?php 
    header("HTTP/1.0 404 Not Found"); 
    ?> 
    

    http://us.php.net/manual/en/function.header.php

    関連する問題