Sur un site Web, il peut y avoir des règles de réécritures pour indiquer au serveur l'emplacement réel des fichiers demandés par le navigateur. Ces règles sont présentes dans le fichier .htaccess, via l'instruction RewriteRule. Celle-ci interprète les expressions régulières si besoin.
Dans le cas où le fichier réécrit n'est pas présent, un code HTTP 404 est automatiquement renvoyé au client. Il est cependant parfois pratique de renvoyer un autre code de réponse HTTP, tel que le code 301 (Move Permanently). Deux cas peuvent alors se présenter selon la similitude entre l'URL appelée et l'arborescence côté serveur.
Si l'URL appelée est https://serveur/photos/test.jpg et que l'emplacement côté serveur est medias/photos/test.jpg, on peut créer facilement la règle de réécriture :
On peut aussi vérifier la présence du fichier au préalable et gérer la redirection en cas d'absence du fichier demandé :
Cela se complique si le nom complet du fichier ne reflète pas l'arborescence du serveur. Dans l'exemple ci-dessous, le chemin du fichier peut être dans 3 emplacements et son nom réel est préfixé par 'fic-':
Il faudrait tester plusieurs emplacement et plusieurs noms de fichiers...
Voici comment tester le nom du fichier généré à posteriori :
Ces 2 solutions permettent ainsi à votre site Internet de ne pas renvoyer d'erreur 404 si une image est absente, mais plutôt un code qui précise aux moteurs de recherches (tels que Google) que vous n'avez pas des fichiers référencés obsolètes/mal reliés mais plutôt un contenu qui a évolué et qui n'existe plus sur votre site.
RSS | Informations |