ホームページ  >  記事  >  運用・保守  >  Nginx で 404 ページと 404 ページを返す AJAX リクエストを設定する方法

Nginx で 404 ページと 404 ページを返す AJAX リクエストを設定する方法

王林
王林転載
2023-05-26 21:47:313736ブラウズ

404ページの基本構成
404エラーとは、wwwサイトにアクセスした際に発生しやすいエラーです。最も一般的なエラー メッセージ: 404 が見つかりません。 404エラーページの設定はWebサイトのSEOに大きな影響を与え、ホームページへの直接リダイレクトなど不適切な設定は検索エンジンによって降格され、摘発されてしまいます。 404 ページの目的は、要求したページが存在しないことをユーザーに伝え、ウィンドウを閉じて離れるのではなく、Web サイトの他のページを参照するようにユーザーを誘導することです。検索エンジンは、http ステータス コードを使用して Web ページのステータスを識別します。検索エンジンが不正なリンクを取得した場合、Web サイトは 404 ステータス コードを返し、検索エンジンにリンクのインデックス作成を中止するように指示する必要があります。 200 または 302 ステータス コードが返された場合、検索エンジンはリンクのインデックスを作成し、その結果、同じ Web ページ コンテンツを指す多数の異なるリンクが作成されます。その結果、Web サイトに対する検索エンジンの信頼は大幅に低下しました。
以下は、lnmp が nginx 404 エラー ページを設定するためのチュートリアルです:
1,

vi /usr/local/nginx/conf/nginx.conf

nginx 構成ファイルを編集し、http セクションに次のコードを追加します:

fastcgi_intercept_errors on;

Nginx で 404 ページと 404 ページを返す AJAX リクエストを設定する方法

2. Web サイト構成ファイル (例: このサイト:

vi /usr/local/nginx/conf/vhost/onelone.com.conf

) を編集し、サーバー セクションに次のコードを追加します:

error_page 404 = /404.html;

注: 一部のネチズンはアップリンクをテストしました。正しい 404 ステータスを返すにはコードで等号を削除する必要があるため、学生は等号を削除するかどうかをテストするように求められます。

Nginx で 404 ページと 404 ページを返す AJAX リクエストを設定する方法

3. 設定ファイルが正しいかどうかをテストします:

/usr/local/nginx/sbin/nginx -t

、渡すために次のコードを返します:

the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
configuration file /usr/local/nginx/conf/nginx.conf test is successful

4 、lnmp を再起動して有効にします: /root/lnmp restart。

Nginx で 404 ページと 404 ページを返す AJAX リクエストを設定する方法

5. 404 エラー ページを作成する場合の注意事項:
(1) 404 エラーを Web サイトのトップページにリダイレクトしないでください。ホームページが検索で失われる エンジンがダウングレードされるか、表示されなくなります。
(2) 絶対 URL は使用しないでください。絶対 URL を使用すると、ステータス コード 302 200 が返され、多数の重複 Web ページが生成されます。
(3) 404ページの設定が完了しました。正しいか必ず確認してください。返される http ヘッダー情報は 404 ステータスである必要があります。これは、サーバーヘッダー情報検査ツールを通じて確認できます。
(4) 自動的に 404 ページにジャンプせず、どこに行くかはユーザーに決めてもらいます。
カスタム 404 ページは 512 バイトより大きくなければなりません。そうでない場合は、つまりデフォルトの 404 ページが表示される可能性があります。

ajax によって要求された 404 ページが返されます
数日前、友人が自分のプログラムに問題を抱えていましたが、いくら調べても問題が見つからなかったので、彼は私にそれを調べるのを手伝ってほしいと頼んだ。実際、これは ajax が多くのテンプレートをリクエストし、そのテンプレートをページに書き込みます。重要なのは、要求されたすべてのページが通常のステータス コード 200 を返すということです。表面上は問題ありません。実際、一部の要求ではステータス コード 200 が返されますが、返されるステータス コードは 200 です。 Web サーバーは nginx で、nginx の 404 エラー ページを設定する必要があると直接教えてもらいました。存在しないリソースに対するリクエストは正常に 404 ページを返すことができますが、返されるステータス コードは確かに 200 です。

404.html
this is 404 page.

存在しないページをリクエスト:

Nginx で 404 ページと 404 ページを返す AJAX リクエストを設定する方法

ajax コード:

$.ajax({
 url: "does_not_exist.html",
 success : function(response, textstatus){
 console.log(textstatus+":"+response);
 },
 error : function(xmlhttprequest, textstatus, errorthrown){
 console.log([xmlhttprequest, textstatus, errorthrown].join(","));
 }
});

実行結果 :

Nginx で 404 ページと 404 ページを返す AJAX リクエストを設定する方法

詳細を表示するにはオブジェクトを入力してください:

Nginx で 404 ページと 404 ページを返す AJAX リクエストを設定する方法

要求されたページが見つかりません404 ページ情報が返されますが、ステータス コードは 200 のままであるため、jquery はエラー関数のコールバックを使用せず、成功のコールバックを直接使用します。
設定に問題があるはずなので、nginx.conf を開いたところ、設定が次のように書かれていることがわかりました。

error_page 404 = /404.html;

そこで、公式 Web サイトのドキュメントを確認して、上記の式を書き直しました次のように:

error_page 404 /404.html;

その後、再起動

d:\nginx-1.5.11>nginx.exe -s reload

もう一度試してください:

Nginx で 404 ページと 404 ページを返す AJAX リクエストを設定する方法

見てみましょうajax リクエスト:

Nginx で 404 ページと 404 ページを返す AJAX リクエストを設定する方法

赤い 404 ステータス コードを返す前のリクエストと比較すると、以下の console.log から出力される内容は次のとおりであることは明らかです。
##

[object object],error,not found

をクリックし、[オブジェクトの入力] をクリックして、


Nginx で 404 ページと 404 ページを返す AJAX リクエストを設定する方法

ステータス値が 404 であることを確認します。 404 ページを返すだけでなく、404 ステータス コードも返すことができるため、ajax リクエストはステータス コードに基づいてページ リクエストのステータスを判断し、エラーを処理できます。

以下は他のネチズンからの追加です:

1. nginx のエラーページが綺麗に表示される理由は?
ウェブサイトにアクセスすると、特別な理由により 403、404、503 などのエラーが頻繁に表示され、ユーザーのアクセス エクスペリエンスに大きな影響を与えるため、エラー ページの表示を改善する必要があります。ユーザーのブラウジング体験。

2. nginx でエレガントに表示されるページを定義するにはどうすればよいですか?
404 エラーを例に挙げます。具体的な手順は次のとおりです:
1. 独自の 404.html ページを作成し、サイト ディレクトリの下に配置します;
2. nginx.conf 構成を変更します。ファイルを作成し、http モジュールに設定します fastcgi_intercept_errors を追加します;
3. nginx.conf 設定ファイルを変更し、error_page 404 /404.html; または error_page 404 =http://www.hulala.com/404 を追加します。 html;
4. 変更後の構文 /nginx/sbin/nginx -t を確認し、nginx を再起動します;
これで、404 エラー ページのエレガントな表示が設定されました。

1 つの例から推論します。502、403 およびその他のエラーも同じ方法で構成できます。
error_page 500 502 503 504 /50x.html;
error_page 403 /403.html;
注:
nginx でエラー リダイレクトを有効にするための 2 つの前提条件は次のとおりです: fastcgi_intercept_errors on、および error_pageオプションが正しく設定されています。

以上がNginx で 404 ページと 404 ページを返す AJAX リクエストを設定する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。