タグ付けされた質問 「http-status-codes」


6
WSODを置き換えるわかりやすいエラーページ
これは最も簡単なことですが、何らかの理由でそれを行うことができません。 厄介な500シナリオを置き換えるために、わかりやすい静的エラーページを取得しようとしています。今のところ、テーマのtemplate.phpの上部にいくつかのがらくたの文字をスローすることにより、ローカルマシン(MAMPで実行されているDrupal 7)で500シチュエーションを複製しようとしています。何らかの理由で、私の.htaccessまたはApacheの構成ファイルのErrorDocumentディレクティブが機能しません。 私がやっていることはこれだけです: ErrorDocument 500 /500.html そして、私は自分のサイトのルートに500.htmlという名前の最も単純な静的htmlページを置いています。 それでも、template.phpを故意に破壊すると、フレンドリーでわかりやすいエラーページではなく、恐ろしい死の白い画面が表示されます。 ここで何が悪いのですか?私はこれをDrupal以外のセットアップで10億回実行しましたが、これに頭を悩ませることはできません。 更新:問題のアプリケーションを実行するために使用するAcquiaのDev Cloudは、現時点では500シリーズのエラーページのカスタマイズもサポートしていないため、この質問は私の特定のユースケースではかなり冗長です。彼らがそのサポートをすぐに実装することを期待しています。

1
非公開ノードの代替HTTPコードを返す
Drupal 8の非公開ノードに対して、403応答ではなく404ページを返そうとしています。 カーネル応答サブスクライバーをテストし ましたが、使用しているコードではステータスコードが403から404に変更されるだけで、実際には404ページが表示されないことがわかりました。だから誰かが私に404ページのResponseオブジェクトを生成する方法を教えてもらえますか? これは私が使っていたコードです: class ResponseSubscriber implements EventSubscriberInterface { /** * {@inheritdoc} */ public static function getSubscribedEvents() { return [KernelEvents::RESPONSE => [['alterResponse']]]; } /** * Change status code to 404 from 403 if page is an unpublished node. * * @param FilterResponseEvent $event * The route building event. */ …

1
Drupalが403 Forbiddenを使用するのはなぜですか?
HTTP / 1.1を定義するドキュメントであるRFC 2616は、すべてのHTTPステータスコードの定義を示しています。のため403 Forbidden、それは言う: サーバーはリクエストを理解しましたが、リクエストの実行を拒否しています。承認は役に立たず、リクエストは繰り返されるべきではありません。リクエストメソッドがHEADではなく、サーバーがリクエストが実行されなかった理由を公開したい場合は、エンティティで拒否の理由を説明する必要があります。サーバーがこの情報をクライアントに提供したくない場合は、代わりにステータスコード404(見つかりません)を使用できます。 しかし、それはDrupalがどのように使用するかではありません。場合によっては、コールバック(例shortcut_link_add_inline():)のデフォルト条件に使用するか、本質403 Forbidden的に「Drupalが要求を理解しない」と同等にするか、またはそれを使用してクライアントに通知しますページにアクセスできません(つまり、匿名ユーザーであるなどの権限が原因です)。 前者(「リクエストが理解されていません」)の場合、より適切なステータスコードは400 Bad Request次のとおりです。 不正な構文のため、サーバーはリクエストを理解できませんでした。クライアントは変更なしでリクエストを繰り返すべきではありません。 後者の場合(「クライアントはアクセス許可のためにページにアクセスできません」)、それは次のいずれかである必要があります401 Unauthorized(Drupalがアクセス許可の問題であることを伝えたい場合): リクエストにはユーザー認証が必要です。応答には、要求されたリソースに適用可能なチャレンジを含むWWW-Authenticateヘッダーフィールド(セクション14.47)を含める必要があります。クライアントは適切なAuthorizationヘッダーフィールド(セクション14.8)を使用してリクエストを繰り返すことができます(MAY)。要求にすでに認証資格情報が含まれている場合、401応答は、それらの資格情報の認証が拒否されたことを示します。 または404 File Not Found(そうでない場合): サーバーは、Request-URIに一致するものを検出しませんでした。状態が一時的であるか永続的であるかは示されません。410(Gone)ステータスコードは、内部的に構成可能なメカニズムを通じて、古いリソースが永続的に利用できず、転送アドレスがないことをサーバーが認識している場合に使用する必要があります(SHOULD)。このステータスコードは、サーバーがリクエストが拒否された理由を正確に明らかにしたくない場合、または他の応答が該当しない場合に一般的に使用されます。 鉱山を強調します(の定義の最後の文も参照してください403 Forbidden)。 私はそれが長年にわたってこのようなものであったことに気づきましたが、Drupalが好きではない要求をdrupal_access_denied()受け取った403 Forbiddenときに送信する唯一の応答を作成するための元の理論的根拠は何でしたか。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.