Maison > Opération et maintenance > Nginx > Comment configurer la page 404 dans Nginx et la requête AJAX pour renvoyer la page 404

Comment configurer la page 404 dans Nginx et la requête AJAX pour renvoyer la page 404

王林
Libérer: 2023-05-26 21:47:31
avant
3911 Les gens l'ont consulté

Configuration de base de la page 404
Les erreurs 404 sont des erreurs susceptibles de se produire lors de l'accès aux sites Web www. Le message d'erreur le plus courant : 404 introuvable. Les paramètres de la page d'erreur 404 ont un grand impact sur le référencement du site Web. Des paramètres inappropriés, tels que la redirection directe vers la page d'accueil, etc., seront rétrogradés et supprimés par les moteurs de recherche. Le but de la page 404 doit être d'informer l'utilisateur que la page que vous avez demandée n'existe pas et de guider l'utilisateur pour qu'il parcoure d'autres pages du site Web au lieu de fermer la fenêtre et de partir. Les moteurs de recherche utilisent des codes d'état http pour identifier l'état des pages Web. Lorsqu'un moteur de recherche obtient un mauvais lien, le site Web doit renvoyer un code d'état 404 pour indiquer au moteur de recherche d'abandonner l'indexation du lien. Si un code d'état 200 ou 302 est renvoyé, le moteur de recherche indexera le lien, ce qui entraînera un grand nombre de liens différents pointant vers le même contenu de page Web. En conséquence, les moteurs de recherche ont considérablement réduit leur confiance dans le site Web.
Ce qui suit est un tutoriel permettant à lnmp de configurer la page d'erreur nginx 404 :

vi /usr/local/nginx/conf/nginx.conf
Copier après la connexion

Modifiez le fichier de configuration nginx et ajoutez le code suivant dans la section http :

fastcgi_intercept_errors on;
Copier après la connexion

Comment configurer la page 404 dans Nginx et la requête AJAX pour renvoyer la page 404

2. fichier, tel que ce site :

vi /usr/local/nginx/conf/vhost/onelone.com.conf
Copier après la connexion

, ajoutez le code suivant dans la section serveur :

error_page 404 = /404.html;
Copier après la connexion
Copier après la connexion

Remarque : certains internautes ont testé que le code en amont doit supprimer le signe égal pour renvoyer le statut 404 correct, il est donc demandé aux étudiants pour tester s'ils doivent supprimer le signe égal.

Comment configurer la page 404 dans Nginx et la requête AJAX pour renvoyer la page 404

3. Testez si le fichier de configuration est correct :

/usr/local/nginx/sbin/nginx -t
Copier après la connexion

, retournez le code suivant à transmettre :

the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
configuration file /usr/local/nginx/conf/nginx.conf test is successful
Copier après la connexion

4. Redémarrez lnmp pour prendre effet : /root/lnmp restart.

Comment configurer la page 404 dans Nginx et la requête AJAX pour renvoyer la page 404

5. Notes sur la création de pages d'erreur 404 :
(1) Ne redirigez pas les erreurs 404 vers la page d'accueil du site Web, sinon cela pourrait entraîner la rétrogradation ou la disparition de la page d'accueil dans les moteurs de recherche. ​
(2) N'utilisez pas d'URL absolues. Si vous utilisez des URL absolues, le code d'état renvoyé est 302+200, ce qui générera un grand nombre de pages Web en double.
(3) Le paramétrage de la page 404 est terminé, assurez-vous de vérifier s'il est correct. Les informations d'en-tête http renvoyées doivent être un statut 404. Cela peut être vérifié via l’outil d’inspection des informations d’en-tête du serveur.
(4) Ne passez pas automatiquement à la page 404, laissez l'utilisateur décider où aller.
La page 404 personnalisée doit être supérieure à 512 octets, sinon la page 404 par défaut de ie peut apparaître.

La page 404 demandée par ajax revient
Il y a quelques jours, un ami a eu un problème avec son programme mais n'a pas pu trouver le problème peu importe la façon dont il a vérifié, alors il m'a demandé de l'aider. En fait, il s'agit d'Ajax qui demande de nombreux modèles, puis écrit les modèles sur la page. L'essentiel est que toutes les pages demandées renvoient un code d'état normal 200. En apparence, il n'y a aucun problème. En fait, bien que certaines requêtes renvoient un code d'état 200, le code d'état renvoyé est 200. Le serveur Web est nginx et m'a directement dit qu'il aurait dû configurer la page d'erreur 404 de nginx. Bien que la demande de ressources inexistantes puisse renvoyer avec succès une page 404, le code d'état de retour est bien 200.

404.html
this is 404 page.
Copier après la connexion

Demande d'une page qui n'existe pas :

Comment configurer la page 404 dans Nginx et la requête AJAX pour renvoyer la page 404

code 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(","));
 }
});
Copier après la connexion

Résultat de l'exécution :

Comment configurer la page 404 dans Nginx et la requête AJAX pour renvoyer la page 404

Entrez l'objet pour voir les détails :

Comment configurer la page 404 dans Nginx et la requête AJAX pour renvoyer la page 404

Page demandée introuvable et renvoie des informations de page 404, mais le code d'état est toujours 200, donc jquery n'utilise pas le rappel de fonction d'erreur mais utilise directement le rappel de réussite.
Il devrait y avoir un problème avec la configuration, j'ai donc ouvert nginx.conf et découvert que leur configuration écrivait :

error_page 404 = /404.html;
Copier après la connexion
Copier après la connexion

J'ai donc vérifié la documentation du site officiel et réécrit l'expression ci-dessus en :

error_page 404 /404.html;
Copier après la connexion

Puis redémarrer

d:\nginx-1.5.11>nginx.exe -s reload
Copier après la connexion

Reviens Essayez :

Comment configurer la page 404 dans Nginx et la requête AJAX pour renvoyer la page 404

Jetons un coup d'œil à la requête ajax :

Comment configurer la page 404 dans Nginx et la requête AJAX pour renvoyer la page 404

Évidemment, par rapport à la précédente qui renvoie un code d'état 404 rouge, ce qui sort du console.log ci-dessous est

[object object],error,not found
Copier après la connexion

puis cliquez sur Entrer l'objet et voyez :

Comment configurer la page 404 dans Nginx et la requête AJAX pour renvoyer la page 404

la valeur du statut est 404. Il peut non seulement renvoyer la page 404, mais également renvoyer le code d'état 404 afin que la requête ajax puisse juger l'état de la demande de page en fonction du code d'état et gérer les erreurs.

Voici les ajouts d'autres internautes :

1. La raison pour laquelle la page d'erreur nginx s'affiche avec élégance ?
Lorsque nous visitons le site Web, pour des raisons particulières, des erreurs telles que 403, 404, 503 apparaissent souvent, ce qui affecte grandement l'expérience d'accès de l'utilisateur, il est donc nécessaire pour nous de faire un affichage élégant de la page d'erreur pour améliorer la navigation de l'utilisateur. expérience.

2. Comment définir des pages affichées avec élégance sous nginx ?
Prenons l'exemple de l'erreur 404. Les étapes spécifiques sont les suivantes :
1. Créez votre propre page 404.html et placez-la dans le répertoire du site ;
2 Modifiez le fichier de configuration nginx.conf et ajoutez fastcgi_intercept_errors dans. le module http ;
3. Modifiez le fichier de configuration nginx.conf et ajoutez : error_page 404 /404.html ou error_page 404 =http://www.hulala.com/404.html;
4. / après avoir modifié sbin/nginx -t et redémarré nginx ;
Maintenant, l'affichage élégant de la page d'erreur 404 a été configuré.

Application : 502, 403 et autres erreurs peuvent être configurées de la même manière.
error_page 500 502 503 504 /50x.html;
error_page 403 /403.html;
Remarque :
Les deux conditions préalables pour que la redirection d'erreur prenne effet dans nginx sont : fastcgi_intercept_errors on est défini et l'option error_page est définie correctement.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:yisu.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal