Redirection vers une 404 personnalisée

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Redirection vers une 404 personnalisée

Re: Redirection vers une 404 personnalisée

par albat » 15 sept. 2015, 14:03

Oui.
RewriteRule ^\/couac-([0-9]+)\.htm$	index.php?p=$1       
ErrorDocument 404 /couac-404.htm [L]
Et dans ce cas, ça me provoque une erreur 500
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator at [email protected] to inform them of the time this error occurred, and the actions you performed just before this error.
More information about this error may be available in the server error log.

Re: Redirection vers une 404 personnalisée

par @rthur » 15 sept. 2015, 01:27

Et tu as essayé d'inverser tes règles, d'abord le RewriteRule et ensuite le ErrorDocument ?

Re: Redirection vers une 404 personnalisée

par or 1 » 14 sept. 2015, 22:20

la ligne semble juste, mais la question est de savoir si elle est testée quand il y a une 404, ce dont je doute.

Re: Redirection vers une 404 personnalisée

par albat » 14 sept. 2015, 22:01

une solution simple, mettre une page couac-404.php qui va appeler index.php?p=404
Ah oui, c'est pas bête, ça ! :)
C'est astucieux, c'est tout simple...
mais, c'est un peu sale quand même. :?

Je suis convaincu que mon truc est faisable avec des regex dans un .htaccess !
Il faut que j'y arrive, sinon je n'oserai plus me regarder dans... le reflet de mon écran.

Mais, [CENSURÉ], j'en [CENSURÉ] !

Re: Redirection vers une 404 personnalisée

par or 1 » 14 sept. 2015, 20:26

une solution simple, mettre une page couac-404.php qui va appeler index.php?p=404

Re: Redirection vers une 404 personnalisée

par albat » 14 sept. 2015, 20:11

Pour le RewriteBase, je ne peux indiquer la racine
car je suis sur un hébergement mutualisé
et j'ai donc dû préciser :
RewriteBase /monprojet/
J'ai corrigé mon .htaccess de la façon suivante :
ErrorDocument 404 /couac-404.htm
RewriteRule ^\/couac-([0-9]+)\.htm$	index.php?p=$1       [L]
Mais, en utilisant une URL moisie, j'ai le message d'erreur suivant :
Not Found
The requested URL /monprojet/pagequinexistepas.htm was not found on this server.
Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.
Cette dernière ligne me plonge dans un abîme de perplexité :
J'ai une erreur 404 sur ma page 404. Le comble, non ? :langue:

Re: Redirection vers une 404 personnalisée

par @rthur » 14 sept. 2015, 18:47

Il faut que tu indiques une url absolue ou que mettes un slash devant couac-404.htm pour indiquer à Apache que c'est une url relative (ou peut être qu'ajouter un RewriteBase / suffit).
A défaut, Apache pense que c'est une chaine de caractères que tu indiques comme erreur 404 et va l'envoyer telle quelle au navigateur.


##edit : le lien vers la doc :
https://httpd.apache.org/docs/current/custom-error.html
La syntaxe de la directive ErrorDocument est :

Code : Tout sélectionner

ErrorDocument <code_3_chiffres> <action>
où action peut être traitée comme :

- Une URL de redirection local (si l'action commence par un "/").
- Une URL de redirection externe (si action est une URL valide).
- Le texte à afficher (si l'action ne répond à aucune des deux conditions précédentes). Entourez le texte de guillemets (") s'il contient plusieurs mots.

Redirection vers une 404 personnalisée

par albat » 14 sept. 2015, 03:32

Bonjour,

Décidément, je suis vraiment (b)rouillé avec les configs Apache.
Aujourd'hui mon souci concerne la redirection vers une page 404 personnalisée.

J'ai donc créé une page (virtuelle) "couac-404.htm"
et je souhaite naturellement que l'internaute soit automatiquement redirigé vers cette page dès qu'il utilise une URL moisie.

Voici les instructions que j'ai inscrites dans mon .htaccess
ErrorDocument 404 couac-404.htm
RewriteRule ^couac-([0-9]+)\.htm$			     		 index.php?p=$1       [L]
L'erreur est bien détectée, mais au lieu de me rediriger vers "couac-404.htm"
qui, techniquement parlant, est en réalité "index.php?p=404",
l'url - erronée - reste inchangée et l'écran n'affiche que le texte :
couac-404.htm
Et ça m'agace... :x

#regexsux