web-dev-qa-db-ja.com

HTMLは、httpd.confの内部でErrorDocument値に入れられますか?

Apacheのドキュメントによると、ErrorDocumentの最後のパラメーターは、エラーコードへのパス、URL、またはテキストとして指定できます。

これまでにI/Oファイルシステムへの呼び出しをなくすために行ったことは、テキストを最終値として使用することです。たとえば、httpd.confファイルで次を使用します。

ErrorDocument 404 "Error: Not Found"

もちろん、Apacheを再起動し、ユーザーがファイルが見つからないことを要求すると、画面には「エラー:見つかりません」と表示されます。

Googleのページ速度の洞察でエラーをトリガーするまで、すべては順調です。

テストのURLは次のとおりです。

https://developers.google.com/speed/pagespeed/insights/?url=http%3A%2F%2Fthenew.clubcatcher.com%2Fpictures%2Fnotexist

Pagespeedは、ビューポートを設定し、読みやすいフォントサイズを使用するように指示します。

私は個人的には、ボットが帯域幅を使い果たすのを防ぐためにエラーページのサイズを非常に小さくしたことを考えるとやり過ぎだと思います。 (そうです、私は50バイトかそこらから500バイト以上に行かなければなりません)。

私はもっ​​と大声で叫ぶことができますが、私が皆を幸せにすることを考えているのは、エラーページをHTMLを含むようにフォーマットすることですが、ファイルシステムにアクセスする必要はありません。たとえば、httpd.confに次のようなものを含めます。

ErrorDocument 404 '<html><head><meta name="viewport" content="width:device-width"></head><body>Not found</body></html>'

このようなHTMLを使用すると、ページはモバイルユーザーとの互換性が高まりますが、質問は、ApacheがHTMLをテキストとして受け入れるかどうかです。もしそうなら、Apacheが生のhtmlとしてそれを出力し、ブラウザがクライアントのデータを正しく変換できるように、どのように最適な形式に再配置するのですか?私の値には引用符が含まれており、Apacheがスローされたくないので、私はそれを尋ねます。

2
Mike

HTMLは、httpd.confの内部でErrorDocument値に入れられますか?

はい。

HTMLは単なるテキストであり、ApacheはデフォルトでContent-Type: text/htmlヘッダーでこれを送信するようです。したがって、この「テキスト」がブラウザにヒットすると、単純なテキスト文字列を送信する場合でも、ブラウザはそれをHTMLとしてレンダリングします。

... Apacheはhtmlをテキストとして受け入れますか?

前述のように、HTMLはテキストです。それを使って何かをするのはブラウザ次第です(それをどう処理するかを知っていれば)。

apacheが生のhtmlとして出力するように、どのように最適な形に再配置するのですか

あなたがすでに持っているものは行くのが良さそうです。

私の値には引用符が含まれており、Apacheがスローされたくないので。

ErrorDocumentディレクティブに渡される引数は、テキストとして解釈されるように引用符(二重または単一)で区切る必要があります。

テキストにテキストを区切るために使用しているものと同じ引用符が含まれている場合(たとえば、二重引用符で囲まれた文字列で二重引用符を使用する場合)、これらはバックスラッシュでエスケープする必要があります。例えば。 "<meta name=\"viewport\" content..."。ただし、必要のない場合は引用符をエスケープしないでください(たとえば、単一引用符で囲まれた文字列内の二重引用符)。そうでない場合、バックスラッシュは単にリテラルのバックスラッシュと見なされます。

この理由から、単一引用符を使用してHTMLを区切ることが最善の選択肢のようです。 (属性値に二重引用符が使用されていると仮定します。)

Apacheが「スローオフ」された場合、500エラーが発生する可能性が高いため、何かがoff!であることがすぐにわかります。

小さな画面で読みやすくするために、完全な/準拠したドキュメントではなく、h1タグを使用できますか? (Google Pagespeedはこれを認識しますか?)

ErrorDocument 404 "<h1>Error: Not Found</h1>"

i/Oファイルシステムへの呼び出しを排除する

しかし、これが本当に違いを生むかどうかちょっと疑問に思いますか?!

serの有用な情報とリンクを含む詳細な404は、ユーザーをサイトに留まらせ、バウンスを防ぐ機会です。これは、ボットが消費する可能性のあるファイルI/Oおよび追加の帯域幅よりも重要です。 (?)

1
MrWhite