404 et url rewrite

Bonjour,

Je commence a découvrir Yunohost, j’essai de passer un petit site php sous apache sur nginx.
J’ai installé my_webapp et cela tourne plutôt bien :yum:
Maintenant j’aimerai changer la page par défaut pour le 404 - not found.
J’ai essayé de modifier les fichiers de conf de nginx, celui du domaine et celui de my_webapp, mais cela ne fonctionne pas.
Je précise que je relance nginx a chaque modification.
J’utilise ce code : error_page 404 /404.php;
Pouvez vous me dire quel fichier je dois modifier ?

Salut,

je pense que tu dois modifier le fichier 404.php dans le dossier correspondant … i.e. si tu as quelque chose comme :

location /foo {
    alias /var/www/foo/;
    error_page 404 /404.php; 
}

alors tu dois modifier /var/www/foo/404.php :smile:

(Attention par contre, si la location /foo est protégée par SSOwat, je pense que tu retombes forcément sur la page de login du SSO, à moins de mettre ton_domaine/foo dans les unprotected_urls de SSOwat)

Je vois que je n’ai pas été clair, pardon, je cherche comment faire pour que la page par défaut pour le 404 pointe vers 404.php qui est à la racine.
Pour le moment c’est une autre page qui est appelée (ou genéré ?) avec juste “page not found” dedans.

Personne pour une petite indication ?

Salut,

du coup je ne suis pas sur de savoir ce que tu veux dire par “404.php qui est la racine” : la racine du filesystem unix ? ou bien du site web ?

Si tu cherches à avoir une page d’erreur unique pour l’ensemble de ton nom de domaine, tu peux aussi essayer de mettre dans ton /etc/nginx/conf.d/nomdedomaine.conf, a l’interieur des blocs server { }, quelque chose comme :

error_page 404 /404.html; location = /404.html {
    root /var/www/errors;
}

et créer/éditer le fichier /var/www/errors/404.html (et créer le dossier errors avec les bonnes permissions).

Ensuite si tu enlèves les lignes “error_page 404 …” dans les fichiers /etc/nginx/conf.d/nomdedomaine.d/*.conf, ils devraient utiliser la nouvelle règle par défaut pour l’erreur 404, i.e. celle qui redirige vers /var/www/errors/404.html

1 Like

Bonjour,

Oui ce que je voudrai faire c’est avoir une page d’erreur spécifique pour un domaine, un fichier 404.php à la racine du site.
Je vais tester ta méthode ce soir, merci pour le retour.

J’ai testé et ça fonctionne :grinning:
Merci pour l’aide.

Petite précision pour les débutants comme moi, il faut bien modifier le fichier etc/nginx/conf.d/nomdedomaine.conf, mais pas dans le premier bloc server {…}, cela ne fonctionne pas.
Dans mon cas le fichier d’erreur 404.php étant à la racine du domaine le code suivant fonctionne :
error_page 404 /404.php;

1 Like