Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Mieux gérer 404

21 réponses
Avatar
benoit
Bonjour,


J'ai un site web de photos et je viens de renommer des images en
remplaçant 1234.jpeg par prenom_ville.jpeg.

Le serveur gère les erreurs 404 en renvoyant sur la home page. Si une
image n'existe pas/plus, ce que je souhaiterai c'est que soit renvoyé
sur :

- Le index.html du dossier dans laquelle elle se trouvait ;
ou
- L'image avec le nouveau nom.

J'ai essayé, veinenement, de rédiger un fichier .htaccess mais c'est
toujours la home page qui s'affiche.

Exemple de contenus de .htaccess situé dans le dossier Afrique :

ErrorDocument 404 /index.html
ErrorDocument 404 photo/paris/tout_le_Monde/Afrique/index.html
ErrorDocument 404
www.leraillez.com/photo/paris/tout_le_Monde/Afrique/index.html

Rien ne renvoie sur cette page index.html

L'idéal serait de renvoyer vers le fichier avec le nouveau nom, mais là,
même si Olivier m'a fait découvrir le concept d'Alias, je suis perdu.
Comment se nomme le fichier, où je le mets...

HTTP/1.1 200 OK
Date: Sat, 03 Jun 2017 09:25:07 GMT
Server: Apache/2.0.47 (Unix) DAV/2 PHP/5.0.4
Last-Modified: Tue, 24 Jan 2017 16:20:17 GMT
ETag: "54155f-13a-7ddc7240"
Accept-Ranges: bytes
Content-Length: 314
Content-Type: text/html


D'avance merci,


FU2 vers le newsgroup le plus approprié selon vous.

--
On s'occupe de l'étiquette qu'une fois les vendanges terminées.

10 réponses

1 2 3
Avatar
benoit
Benoit wrote:
J'ai un site web de photos et je viens de renommer des images en
remplaçant 1234.jpeg par prenom_ville.jpeg.
Le serveur gère les erreurs 404 en renvoyant sur la home page. Si une
image n'existe pas/plus, ce que je souhaiterai c'est que soit renvoyé
sur :
- Le index.html du dossier dans laquelle elle se trouvait ;
ou
- L'image avec le nouveau nom.
J'ai essayé, veinenement, de rédiger un fichier .htaccess mais c'est
toujours la home page qui s'affiche.
Exemple de contenus de .htaccess situé dans le dossier Afrique :
ErrorDocument 404 /index.html
ErrorDocument 404 photo/paris/tout_le_Monde/Afrique/index.html
ErrorDocument 404
www.leraillez.com/photo/paris/tout_le_Monde/Afrique/index.html
Rien ne renvoie sur cette page index.html
L'idéal serait de renvoyer vers le fichier avec le nouveau nom, mais là,
même si Olivier m'a fait découvrir le concept d'Alias, je suis perdu.
Comment se nomme le fichier, où je le mets...
HTTP/1.1 200 OK
Date: Sat, 03 Jun 2017 09:25:07 GMT
Server: Apache/2.0.47 (Unix) DAV/2 PHP/5.0.4
Last-Modified: Tue, 24 Jan 2017 16:20:17 GMT
ETag: "54155f-13a-7ddc7240"
Accept-Ranges: bytes
Content-Length: 314
Content-Type: text/html
D'avance merci,
FU2 vers le newsgroup le plus approprié selon vous.

Déjà une première chose : les fichiers .htaccess que je dépose sont
supprimés par le serveur, il ne les affiche pas dans le dossier.
J'attends des infos de la part de mon hébergeur.
--
On s'occupe de l'étiquette qu'une fois les vendanges terminées.
Avatar
Nicolas George
Benoit, dans le message <1n71kqx.eiue0h1sscb5lN%, a
écrit :
J'ai un site web de photos et je viens de renommer des images en
remplaçant 1234.jpeg par prenom_ville.jpeg.
Le serveur gère les erreurs 404 en renvoyant sur la home page. Si une
image n'existe pas/plus, ce que je souhaiterai c'est que soit renvoyé
sur :
- Le index.html du dossier dans laquelle elle se trouvait ;
ou
- L'image avec le nouveau nom.
L'idéal serait de renvoyer vers le fichier avec le nouveau nom, mais là,
même si Olivier m'a fait découvrir le concept d'Alias, je suis perdu.

J'ai envie de dire : très mauvaise idée. Un 404 n'est pas juste là pour
fournir l'information cherchée immédiatement, il a aussi pour rôle
d'informer à la fois l'utilisateur et les caches que l'information n'est
pas là, et permettre ainsi de se remettre à sa recherche.
Si le même fichier exactement existe toujours mais est accessible sous
une autre URL, et que cette URL est connue, c'est « 301 Moved
Permanently » qu'il faut renvoyer, pas « 404 Not Found ».
Sinon, on peut envisager une page de 404 dynamique qui consulte un
moteur de recherche pour proposer à l'utilisateur des liens vers les
pages possibles. Ça peut être fait avec une page 404 dynamique côté
serveur ou bien une page 404 statique agrémentée de Javascript.
En revanche, avoir une page 404 spéciale ne sert pas à grand chose pour
les images, car elle ne serait affichée que quand un visiteur consulte
directement l'image. Quand l'image est incorporée à une page, ça
n'afficherait que l'icône standard d'image cassée. Un 301 fonctionne, en
revanche. Et bien sûr, l'auteur qui renomme un fichier image est censé
changer le nom aussi dans les pages du site.
Avatar
benoit
Nicolas George <nicolas$ wrote:
Benoit, dans le message <1n71kqx.eiue0h1sscb5lN%, a
écrit :
J'ai un site web de photos et je viens de renommer des images en
remplaçant 1234.jpeg par prenom_ville.jpeg.
Le serveur gère les erreurs 404 en renvoyant sur la home page. Si une
image n'existe pas/plus, ce que je souhaiterai c'est que soit renvoyé
sur :
- Le index.html du dossier dans laquelle elle se trouvait ;
ou
- L'image avec le nouveau nom.

L'idéal serait de renvoyer vers le fichier avec le nouveau nom, mais là,
même si Olivier m'a fait découvrir le concept d'Alias, je suis perdu.

J'ai envie de dire : très mauvaise idée. Un 404 n'est pas juste là pour
fournir l'information cherchée immédiatement, il a aussi pour rôle
d'informer à la fois l'utilisateur et les caches que l'information n'est
pas là, et permettre ainsi de se remettre à sa recherche.

J'ai cru comprendre qu'avec les alias on pouvait renvoyé une URL vers
une autre. C'est ce que je préfèrerai faire.
Si le même fichier exactement existe toujours mais est accessible sous
une autre URL, et que cette URL est connue, c'est « 301 Moved
Permanently » qu'il faut renvoyer, pas « 404 Not Found ».

Oui, mais je n'ai pas accès à ça sur le serveur, mon hébergeur ne me
donne pas cette possibilité. Ou alors c'est un fichier « texte » que je
mets quelque part ?
Sinon, on peut envisager une page de 404 dynamique qui consulte un
moteur de recherche pour proposer à l'utilisateur des liens vers les
pages possibles. Ça peut être fait avec une page 404 dynamique côté
serveur ou bien une page 404 statique agrémentée de Javascript.

Hors de mon champ de compétences, connaissances, autorisations sur le
serveur... que je sache.
En revanche, avoir une page 404 spéciale ne sert pas à grand chose pour
les images, car elle ne serait affichée que quand un visiteur consulte
directement l'image. Quand l'image est incorporée à une page, ça
n'afficherait que l'icône standard d'image cassée. Un 301 fonctionne, en
revanche. Et bien sûr, l'auteur qui renomme un fichier image est censé
changer le nom aussi dans les pages du site.

Mes pages sont générées par un logiciel de création de site de photos,
il utilise le nom des images sans pb. Si je change le nom d'une image il
me génère un nouveau site et le télécharge sur le serveur.
L'image 1234.jpeg est incluse dans une page 1234.html qui contient
l'image et tout un tas d'autres choses. Comme le nom de l'image a changé
(en benoit.jpeg par exemple), le nom de la page a changé : 1234.html est
remplacée par benoit.html. C'est ce que je voudrai pouvoir gérer.
P.S. en me relisant je me rend compte que j'ai un peu mélagner les
choses puisque je parle d'image et non de page contenant une image.
J'espère être plus précis dans le dernier paragraphe.
--
On s'occupe de l'étiquette qu'une fois les vendanges terminées.
Avatar
Olivier Miakinen
Le 03/06/2017 12:21, Benoit a écrit :
L'idéal serait de renvoyer vers le fichier avec le nouveau nom,

Oui.
mais là,
même si Olivier m'a fait découvrir le concept d'Alias, je suis perdu.

Je n'ai pas parlé d'Alias mais de Redirect permanent, même s'il se
trouve que les deux se trouvent dans la même doc Apache :
<https://httpd.apache.org/docs/2.4/fr/mod/mod_alias.html>
<https://httpd.apache.org/docs/2.4/fr/mod/mod_alias.html#redirect>
<https://httpd.apache.org/docs/2.4/fr/mod/mod_alias.html#redirectpermanent>
--
Olivier Miakinen
Avatar
Olivier Miakinen
Le 04/06/2017 12:35, Benoit a écrit :
L'image 1234.jpeg est incluse dans une page 1234.html qui contient
l'image et tout un tas d'autres choses. Comme le nom de l'image a changé
(en benoit.jpeg par exemple), le nom de la page a changé : 1234.html est
remplacée par benoit.html. C'est ce que je voudrai pouvoir gérer.

... donc un truc du genre :
Redirect permanent 1234.html benoit.html
Redirect permanent 1234.jpeg benoit.jpeg
Voire peut-être :
RedirectMatch permanent 1234.(.*) benoit.$1
<https://httpd.apache.org/docs/2.4/fr/mod/mod_alias.html#redirectmatch>
Note que le mot-clé « permanent » indiqué ici n'est qu'une autre
façon de dire que c'est le code 301 qui est envoyé, ainsi que le
conseillait Nicolas George.
RedirectMatch 301 1234.(.*) benoit.$1
P.-S. : je ne connais pas la syntaxe exacte, peut-être le / est-il
obligatoire, donc :
RedirectMatch 301 /1234.(.*) /benoit.$1
ou :
RedirectMatch permanent /1234.(.*) /benoit.$1
--
Olivier Miakinen
Avatar
benoit
Olivier Miakinen <om+ wrote:
Le 04/06/2017 12:35, Benoit a écrit :
L'image 1234.jpeg est incluse dans une page 1234.html qui contient
l'image et tout un tas d'autres choses. Comme le nom de l'image a changé
(en benoit.jpeg par exemple), le nom de la page a changé : 1234.html est
remplacée par benoit.html. C'est ce que je voudrai pouvoir gérer.

... donc un truc du genre :
Redirect permanent 1234.html benoit.html
Redirect permanent 1234.jpeg benoit.jpeg
Voire peut-être :
RedirectMatch permanent 1234.(.*) benoit.$1
<https://httpd.apache.org/docs/2.4/fr/mod/mod_alias.html#redirectmatch>
Note que le mot-clé « permanent » indiqué ici n'est qu'une autre
façon de dire que c'est le code 301 qui est envoyé, ainsi que le
conseillait Nicolas George.
RedirectMatch 301 1234.(.*) benoit.$1
P.-S. : je ne connais pas la syntaxe exacte, peut-être le / est-il
obligatoire, donc :
RedirectMatch 301 /1234.(.*) /benoit.$1
ou :
RedirectMatch permanent /1234.(.*) /benoit.$1

Merci, mais je mets ça où ? Parce que la doc ne dit rien. En tout cas
j'ai envoyé un mail pour savoir pourquoi les fichiers .htacess, que je
téléchargeais, n'apparaissaient pas.
--
On s'occupe de l'étiquette qu'une fois les vendanges terminées.
Avatar
Yliur
Le Sat, 3 Jun 2017 12:46:33 +0200
(Benoit) a écrit :
Déjà une première chose : les fichiers .htaccess que je dépose sont
supprimés par le serveur, il ne les affiche pas dans le dossier.
J'attends des infos de la part de mon hébergeur.

Comment fais-tu pour voir qu'ils n'apparaissent pas ?
Avatar
Olivier Miakinen
Le 04/06/2017 16:37, Benoit a écrit :
P.-S. : je ne connais pas la syntaxe exacte, peut-être le / est-il
obligatoire, donc :
RedirectMatch 301 /1234.(.*) /benoit.$1
ou :
RedirectMatch permanent /1234.(.*) /benoit.$1

Merci, mais je mets ça où ?

De mémoire, ça doit être dans httpd.conf au niveau général, ou dans
un .htaccess répertoire par répertoire. Mais ça fait un moment que
je n'y touche pas.
Parce que la doc ne dit rien. En tout cas
j'ai envoyé un mail pour savoir pourquoi les fichiers .htacess, que je
téléchargeais, n'apparaissaient pas.

Comment cherches-tu à les faire « apparaître » ? Si c'est par 'ls' sur
un Unix-like, il faut savoir que par défaut la commande ls n'affiche
pas les fichiers dont le nom commence par un « . », et pour les voir
il faut écrire par exemple « ls -a ».
Mais si c'est par un GET http://chemin/.htaccess, vérifie que tu as
bien mis deux « c » aussi bien au nom du fichier que dans ta requête.
En effet, ci-dessus tu as écrit « .htacess » avec un seul c. ;-)
--
Olivier Miakinen
Avatar
Yliur
Le Sun, 4 Jun 2017 22:59:01 +0200
Olivier Miakinen <om+ a écrit :
Mais si c'est par un GET http://chemin/.htaccess, vérifie que tu as
bien mis deux « c » aussi bien au nom du fichier que dans ta requête.
En effet, ci-dessus tu as écrit « .htacess » avec un seul c. ;-)

Est-ce qu'Apache renvoie le contenu de ce fichier ?
Avatar
Olivier Miakinen
Le 04/06/2017 23:22, Yliur a écrit :
Mais si c'est par un GET http://chemin/.htaccess, vérifie que tu as
bien mis deux « c » aussi bien au nom du fichier que dans ta requête.
En effet, ci-dessus tu as écrit « .htacess » avec un seul c. ;-)

Est-ce qu'Apache renvoie le contenu de ce fichier ?

Bonne question. Je viens d'essayer sur mon site, et la réponse est non :
<http://www.miakinen.net/.htaccess>
403 Forbidden
You don't have permission to access /.htaccess on this server.
Pourtant, le fichier existe bel et bien, je peux y accéder par FTP.
--
Olivier Miakinen
1 2 3