URL Rewriting et pages d'erreurs personnalisées (401, 403, 404 et 500)

Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
#1
Citation :#~~~~~ DEBUT BLOC A NE PAS SUPPRIMER ~~~~~
#~ Version du CMS: #1.11.0
#~ Url du site :
#~ Hébergeur / Soft :
#~ Informations Système :
#~ ----------------------------------------------
#~ Cms Version: 1.11
#~ Installed Modules:
#~ CMSMailer: 5.2.1
#~ FileManager: 1.4.0
#~ MenuManager: 1.8.2
#~ ModuleManager: 1.5.5
#~ News: 2.12.7
#~ Printing: 1.1.2
#~ Search: 1.7.6
#~ ThemeManager: 1.1.7
#~ TinyMCE: 2.9.10.1
#~ CMSPrinting: 1.0.2
#~ MicroTiny: 1.2.3
#~ Showtime: 3.2
#~ CGExtensions: 1.30
#~ SiteMapMadeSimple: 1.2.6
#~ CGJobMgr: 1.2.6.1
#~ NMS: 2.5.5
#~ ExtendedTools: 1.3.3
#~ RSSSimplePie: 1.0
#~ Config Information:
#~ php_memory_limit:
#~ process_whole_template:
#~ output_compression: false
#~ max_upload_size: 20000000
#~ url_rewriting: mod_rewrite
#~ page_extension:
#~ query_var: p
#~ image_manipulation_prog: GD
#~ auto_alias_content: true
#~ locale:
#~ default_encoding: utf-8
#~ admin_encoding: utf-8
#~ set_names: true
#~ Php Information:
#~ phpversion: 5.3.3-7+squeeze13
#~ md5_function: On (Vrai)
#~ gd_version: 2
#~ tempnam_function: On (Vrai)
#~ magic_quotes_runtime: Off (Faux)
#~ E_STRICT: 0
#~ E_DEPRECATED: 0
#~ memory_limit: 128M
#~ max_execution_time: 120
#~ output_buffering: 4096
#~ safe_mode: Off (Faux)
#~ file_uploads: On (Vrai)
#~ post_max_size: 20M
#~ upload_max_filesize: 20M
#~ session_save_path: /home/monsite.fr/domains/demo.monsite.fr/tmp (0750)
#~ session_use_cookies: On (Vrai)
#~ xml_function: On (Vrai)
#~ xmlreader_class: On (Vrai)
#~ Server Information:
#~ Server Api: cgi-fcgi
#~ Server Db Type: MySQL (mysqli)
#~ Server Db Version: 5.1.63
#~ Server Db Grants: Trouvé un privilège "GRANT ALL" qui semble être adapté
#~ ----------------------------------------------
#~~~~~ FIN BLOC A NE PAS SUPPRIMER ~~~~~



Bonjour à tous,
J'ai créé 4 pages d'erreurs personnalisées pour les erreurs 401, 403, 404 et 500 (Ces pages php m'envoient un mail d'alerte à chaque chargement donc à chaque erreur). Tout fonctionnait parfaitement avec le .htaccess suivant:

Code :
[== Indéfini ==]
ErrorDocument 401 /erreurs/erreur-401.php
ErrorDocument 403 /erreurs/erreur-403.php
ErrorDocument 404 /erreurs/erreur-404.php
ErrorDocument 500 /erreurs/erreur-500.php

Options +FollowSymLinks
RewriteEngine on
RewriteBase /

# Redirection 301 de toutes les demandes qui ne contiennent
# pas un point ou un slash
RewriteCond %{REQUEST_URI} !/$
RewriteCond %{REQUEST_URI} !\.
RewriteRule ^(.*) %{REQUEST_URI}/ [R=301,L]

# Régles de réécriture pour la forme /parent/enfant/
# mais réécrit seulement si l'URL demandée n'est pas un fichier ou un répertoire
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ index.php?p=$1 [QSA]

J'ai passé mon site en url rewriting il y a quelques jours. Or depuis cette modif, ces pages d'erreurs ne sont plus chargées (Exceptée la page 403), à la place j'ai une page du type:

Citation :Not Found

The requested URL was not found on this server.

Donc plus personnalisée et surtout je ne suis plus averti par mail.

J'ai beau chercher et tester cela ne fonctionne toujours pas. Grrrr !

Bonne journée
Répondre
#1
Citation :#~~~~~ DEBUT BLOC A NE PAS SUPPRIMER ~~~~~
#~ Version du CMS: #1.11.0
#~ Url du site :
#~ Hébergeur / Soft :
#~ Informations Système :
#~ ----------------------------------------------
#~ Cms Version: 1.11
#~ Installed Modules:
#~ CMSMailer: 5.2.1
#~ FileManager: 1.4.0
#~ MenuManager: 1.8.2
#~ ModuleManager: 1.5.5
#~ News: 2.12.7
#~ Printing: 1.1.2
#~ Search: 1.7.6
#~ ThemeManager: 1.1.7
#~ TinyMCE: 2.9.10.1
#~ CMSPrinting: 1.0.2
#~ MicroTiny: 1.2.3
#~ Showtime: 3.2
#~ CGExtensions: 1.30
#~ SiteMapMadeSimple: 1.2.6
#~ CGJobMgr: 1.2.6.1
#~ NMS: 2.5.5
#~ ExtendedTools: 1.3.3
#~ RSSSimplePie: 1.0
#~ Config Information:
#~ php_memory_limit:
#~ process_whole_template:
#~ output_compression: false
#~ max_upload_size: 20000000
#~ url_rewriting: mod_rewrite
#~ page_extension:
#~ query_var: p
#~ image_manipulation_prog: GD
#~ auto_alias_content: true
#~ locale:
#~ default_encoding: utf-8
#~ admin_encoding: utf-8
#~ set_names: true
#~ Php Information:
#~ phpversion: 5.3.3-7+squeeze13
#~ md5_function: On (Vrai)
#~ gd_version: 2
#~ tempnam_function: On (Vrai)
#~ magic_quotes_runtime: Off (Faux)
#~ E_STRICT: 0
#~ E_DEPRECATED: 0
#~ memory_limit: 128M
#~ max_execution_time: 120
#~ output_buffering: 4096
#~ safe_mode: Off (Faux)
#~ file_uploads: On (Vrai)
#~ post_max_size: 20M
#~ upload_max_filesize: 20M
#~ session_save_path: /home/monsite.fr/domains/demo.monsite.fr/tmp (0750)
#~ session_use_cookies: On (Vrai)
#~ xml_function: On (Vrai)
#~ xmlreader_class: On (Vrai)
#~ Server Information:
#~ Server Api: cgi-fcgi
#~ Server Db Type: MySQL (mysqli)
#~ Server Db Version: 5.1.63
#~ Server Db Grants: Trouvé un privilège "GRANT ALL" qui semble être adapté
#~ ----------------------------------------------
#~~~~~ FIN BLOC A NE PAS SUPPRIMER ~~~~~



Bonjour à tous,
J'ai créé 4 pages d'erreurs personnalisées pour les erreurs 401, 403, 404 et 500 (Ces pages php m'envoient un mail d'alerte à chaque chargement donc à chaque erreur). Tout fonctionnait parfaitement avec le .htaccess suivant:

Code :
[== Indéfini ==]
ErrorDocument 401 /erreurs/erreur-401.php
ErrorDocument 403 /erreurs/erreur-403.php
ErrorDocument 404 /erreurs/erreur-404.php
ErrorDocument 500 /erreurs/erreur-500.php

Options +FollowSymLinks
RewriteEngine on
RewriteBase /

# Redirection 301 de toutes les demandes qui ne contiennent
# pas un point ou un slash
RewriteCond %{REQUEST_URI} !/$
RewriteCond %{REQUEST_URI} !\.
RewriteRule ^(.*) %{REQUEST_URI}/ [R=301,L]

# Régles de réécriture pour la forme /parent/enfant/
# mais réécrit seulement si l'URL demandée n'est pas un fichier ou un répertoire
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ index.php?p=$1 [QSA]

J'ai passé mon site en url rewriting il y a quelques jours. Or depuis cette modif, ces pages d'erreurs ne sont plus chargées (Exceptée la page 403), à la place j'ai une page du type:

Citation :Not Found

The requested URL was not found on this server.

Donc plus personnalisée et surtout je ne suis plus averti par mail.

J'ai beau chercher et tester cela ne fonctionne toujours pas. Grrrr !

Bonne journée
Répondre
#2
Il me semble que
RewriteBase /
devrait être commenté, non ?
Répondre
#2
Il me semble que
RewriteBase /
devrait être commenté, non ?
Répondre
#3
Jean le Chauve a écrit :Il me semble que
RewriteBase /
devrait être commenté, non ?

Merci Jean pour ta remarque, mais j'ai essayé sans succès... :mad:
Répondre
#3
Jean le Chauve a écrit :Il me semble que
RewriteBase /
devrait être commenté, non ?

Merci Jean pour ta remarque, mais j'ai essayé sans succès... :mad:
Répondre
#4
Vérifie ceci : Use of ErrorDocument is enabled for .htaccess files when the AllowOverride is set accordingly.
http://httpd.apache.org/docs/2.2/custom-error.html
Répondre
#4
Vérifie ceci : Use of ErrorDocument is enabled for .htaccess files when the AllowOverride is set accordingly.
http://httpd.apache.org/docs/2.2/custom-error.html
Répondre
#5
Regarde également la faq de ton hébergeur (que nous ne connaissons pas). Certains demandent l'adresse complète de la page : ErrorDocument 404 http://www.monsite/404.html (Lycos).
Répondre
#5
Regarde également la faq de ton hébergeur (que nous ne connaissons pas). Certains demandent l'adresse complète de la page : ErrorDocument 404 http://www.monsite/404.html (Lycos).
Répondre
#6
Je raconte des bétises, puisque cela fonctionnait avant l'url_rewriting.
Travaille pas à pas : supprime des lignes et tu finiras par tomber sur le code qui pose problème.
Répondre
#6
Je raconte des bétises, puisque cela fonctionnait avant l'url_rewriting.
Travaille pas à pas : supprime des lignes et tu finiras par tomber sur le code qui pose problème.
Répondre
#7
Merci Jean pour tes réponses

Je vais manipuler mon code et je te tiens au parfum...

Mon hébergeur est un dédié sous Debian 6 adminitré par Webmin, donc je fais ce que je veux, NA ! :lol: :lol: :lol:

Bonne soirée !
Répondre
#7
Merci Jean pour tes réponses

Je vais manipuler mon code et je te tiens au parfum...

Mon hébergeur est un dédié sous Debian 6 adminitré par Webmin, donc je fais ce que je veux, NA ! :lol: :lol: :lol:

Bonne soirée !
Répondre
#8
Bonjour PEGASE

J'ai le même problème que toi. As tu réglé le sujet sur ton serveur?

Je suis sur OVH mutu
Répondre
#8
Bonjour PEGASE

J'ai le même problème que toi. As tu réglé le sujet sur ton serveur?

Je suis sur OVH mutu
Répondre
#9
Bonsoir,

J'ai le même souci, la gestion des erreurs 404 ne fonctionne pas avec l'url rewriting activé via htaccess, et cela sur 2 sites différents, l'un hébergé en mutu chez 1and1 et l'autre en mutu chez OVH.

Quand j'enlève l'url rewriting de mon fichier htaccess, ErrorDocument 404 fonctionne !

J'utilise la version 1.11.2 de CMSMS.

Voici mon fichier htaccess :
Code :
Options -Indexes
Options -Multiviews
Options +FollowSymLinks
SetEnv REGISTER_GLOBALS 0
SetEnv ZEND_OPTIMIZER 1
SetEnv MAGIC_QUOTES 0
SetEnv PHP_VER 5_3
Header unset ETag
FileETag None
ServerSignature Off
AddDefaultCharset "utf-8"
AddType image/x-icon .ico

# URL Rewriting
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ index.php?page=$1 [QSA]

# Erreur 404
ErrorDocument 404 http://www.codexia.fr

J'ai aussi essayé avec :
Code :
ErrorDocument 404 /index.php
mais cela ne marche pas non plus.


Est-ce que quelqu'un ici a déjà réussi à faire fonctionner simultanément l'url rewriting et la redirection 404 avec CMSMS ?

Merci pour votre aide.
Répondre
#9
Bonsoir,

J'ai le même souci, la gestion des erreurs 404 ne fonctionne pas avec l'url rewriting activé via htaccess, et cela sur 2 sites différents, l'un hébergé en mutu chez 1and1 et l'autre en mutu chez OVH.

Quand j'enlève l'url rewriting de mon fichier htaccess, ErrorDocument 404 fonctionne !

J'utilise la version 1.11.2 de CMSMS.

Voici mon fichier htaccess :
Code :
Options -Indexes
Options -Multiviews
Options +FollowSymLinks
SetEnv REGISTER_GLOBALS 0
SetEnv ZEND_OPTIMIZER 1
SetEnv MAGIC_QUOTES 0
SetEnv PHP_VER 5_3
Header unset ETag
FileETag None
ServerSignature Off
AddDefaultCharset "utf-8"
AddType image/x-icon .ico

# URL Rewriting
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ index.php?page=$1 [QSA]

# Erreur 404
ErrorDocument 404 http://www.codexia.fr

J'ai aussi essayé avec :
Code :
ErrorDocument 404 /index.php
mais cela ne marche pas non plus.


Est-ce que quelqu'un ici a déjà réussi à faire fonctionner simultanément l'url rewriting et la redirection 404 avec CMSMS ?

Merci pour votre aide.
Répondre
#10
Personne ici pour répondre à ma question car c'est l'été ?
Ou dois-je ouvrir un nouveau sujet ?
Répondre
#10
Personne ici pour répondre à ma question car c'est l'été ?
Ou dois-je ouvrir un nouveau sujet ?
Répondre
#11
Ca aurait pu être une bonne idée d'ouvrir dès le départ ton propre sujet, enfin c'est trop tard maintenant.

la 404 se gère sur cmsmadesimple naturellement si tu as pensé à créé une page d'erreur DANS cmsmadesimple (regarde les types de contenu disponibles dans les pages). pas de .htaccess nécessaire pour que ça marche.

exemple : www.cmsmadesimple.fr/ truc
Répondre
#11
Ca aurait pu être une bonne idée d'ouvrir dès le départ ton propre sujet, enfin c'est trop tard maintenant.

la 404 se gère sur cmsmadesimple naturellement si tu as pensé à créé une page d'erreur DANS cmsmadesimple (regarde les types de contenu disponibles dans les pages). pas de .htaccess nécessaire pour que ça marche.

exemple : www.cmsmadesimple.fr/ truc
Répondre
#12
Merci, j'ai appris un truc sur CMSMS Smile

Je l'ai mis en place, avec ta méthode (sans .htaccess) sur mes 2 sites et bizarrement je n'obtiens pas le même résultat :/

Sur codexia.fr (version CMSMS 1.10.3 chez OVH) cela fonctionne avec toute url terminant par .html mais pas sans.

Et sur dsp-strasbourg.fr (version CMSMS 1.11.2 chez 1&1) cela ne fonctionne pas du tout.

De plus, j'aurais préféré que la redirection 404 se face simplement vers la page d'accueil mais c'est impossible via cette méthode.

N'y a-t-il pas un moyen de le faire tout-de-même avec le .htaccess ?
Répondre
#12
Merci, j'ai appris un truc sur CMSMS Smile

Je l'ai mis en place, avec ta méthode (sans .htaccess) sur mes 2 sites et bizarrement je n'obtiens pas le même résultat :/

Sur codexia.fr (version CMSMS 1.10.3 chez OVH) cela fonctionne avec toute url terminant par .html mais pas sans.

Et sur dsp-strasbourg.fr (version CMSMS 1.11.2 chez 1&1) cela ne fonctionne pas du tout.

De plus, j'aurais préféré que la redirection 404 se face simplement vers la page d'accueil mais c'est impossible via cette méthode.

N'y a-t-il pas un moyen de le faire tout-de-même avec le .htaccess ?
Répondre
#13
je ne saurais répondre à tous les points, néanmoins :

les redirection du .htaccess pour les pretty-url de cmsms exigent apparement dans ton cas de venir d'une page .html avant de rediriger vers index.php?page=xxx

Si tu ne rentre pas dans ces conditions en appellant une page qui se finit pas par .html, tu n'arrivera donc pas vers index.php?page=xxx ce qui empêche cmsmadesimple de gérer ta 404. Chose normale donc.

Pour contourner tu pourrais ajouter un traitement 404 personnalisé APRES la redirection de cmsms dans le .htacces pour capter toutes les urls bizarres non trouvées par les règles précédente.

Pour le soucis chez 1&1 je n'ai aucune idée : je ne suis pas devant le code.

une astuce pour ta redirection 404 vers la page d'accueil : dans le contenu de la page de type 404 tu met ce code : {redirect_page page='some-page-alias'} avec l'alias de la page souhaitée.

Maintenant je te pose la question : quel intêret de mentir à l'utilisateur : l'url existe pas, mais je te le dirais pas explicitement ? La page 404 est l'occasion de prévenir l'utilisateur qu'il s'est aventuré sur un lien KO et que s'il vient d'un bookmark c'est peut être le moment de le mettre à jour !

Autre aspect du 404 : http://www.webrankinfo.com/dossiers/stra...nks-et-404 bonne lecture Wink
Répondre
#13
je ne saurais répondre à tous les points, néanmoins :

les redirection du .htaccess pour les pretty-url de cmsms exigent apparement dans ton cas de venir d'une page .html avant de rediriger vers index.php?page=xxx

Si tu ne rentre pas dans ces conditions en appellant une page qui se finit pas par .html, tu n'arrivera donc pas vers index.php?page=xxx ce qui empêche cmsmadesimple de gérer ta 404. Chose normale donc.

Pour contourner tu pourrais ajouter un traitement 404 personnalisé APRES la redirection de cmsms dans le .htacces pour capter toutes les urls bizarres non trouvées par les règles précédente.

Pour le soucis chez 1&1 je n'ai aucune idée : je ne suis pas devant le code.

une astuce pour ta redirection 404 vers la page d'accueil : dans le contenu de la page de type 404 tu met ce code : {redirect_page page='some-page-alias'} avec l'alias de la page souhaitée.

Maintenant je te pose la question : quel intêret de mentir à l'utilisateur : l'url existe pas, mais je te le dirais pas explicitement ? La page 404 est l'occasion de prévenir l'utilisateur qu'il s'est aventuré sur un lien KO et que s'il vient d'un bookmark c'est peut être le moment de le mettre à jour !

Autre aspect du 404 : http://www.webrankinfo.com/dossiers/stra...nks-et-404 bonne lecture Wink
Répondre
#14
@ fred2501
la page erreur 404 depuis le cms fonctionne correctement chez 1&1 pour moi en V 1.11.7, et sur les autres hébergements aussi Wink
Mais il faudrait déjà peur être mettre à jour les cms car 1.10.3 et 1.11.2 sont des versions obsolètes et donc non supportées ici
NOTA dernière version 1.11.7
J-C Etiemble v 2.2.xx
Répondre
#14
@ fred2501
la page erreur 404 depuis le cms fonctionne correctement chez 1&1 pour moi en V 1.11.7, et sur les autres hébergements aussi Wink
Mais il faudrait déjà peur être mettre à jour les cms car 1.10.3 et 1.11.2 sont des versions obsolètes et donc non supportées ici
NOTA dernière version 1.11.7
J-C Etiemble v 2.2.xx
Répondre
#15
Merci pour vos précisions et conseils.

Après avoir mis à jour mes 2 sites CMSMS en V 1.11.7, j'ai testé la redirection 404 sur Firefox, Chrome et IE10.
- Firefox > impec
- Chrome > impec
- IE10 > ne fonctionne pas du tout (même en vidant le cache et en redémarrant l'ordi)

Je ne comprends pas pourquoi ça ne marche pas pour mes 2 sites alors que pour cmsmadesimple.fr ça fonctionne parfaitement sur IE10 !
Répondre
#15
Merci pour vos précisions et conseils.

Après avoir mis à jour mes 2 sites CMSMS en V 1.11.7, j'ai testé la redirection 404 sur Firefox, Chrome et IE10.
- Firefox > impec
- Chrome > impec
- IE10 > ne fonctionne pas du tout (même en vidant le cache et en redémarrant l'ordi)

Je ne comprends pas pourquoi ça ne marche pas pour mes 2 sites alors que pour cmsmadesimple.fr ça fonctionne parfaitement sur IE10 !
Répondre
#16
Je viens de résoudre mon problème comme un grand Smile

Sur IE10 j'utilise la barre d'outil Google et c'est une de ses fonctionnalités (Suggestions en cas d'erreurs de navigation) qui entrait en conflit avec la redirection 404 de CMSMS. J'ai donc désactivé cette fonction et ça marche nickel.

Voilà ce que dit Google à propos de ceci :

Citation :Des suggestions s'affichent sur la barre d'outils lorsque la page Web que vous tentez d'ouvrir est introuvable.

Activer ou désactiver les suggestions en cas d'erreurs de navigation
1.Cliquez sur l'icône représentant une clé à molette clé à molette dans la barre d'outils Google.
2.Dans l'onglet Général, à la section "Outils de navigation sur le Web", cochez (ou décochez) la case "Suggestions en cas d'erreurs de navigation".
3.Cliquez sur Enregistrer.
Répondre
#16
Je viens de résoudre mon problème comme un grand Smile

Sur IE10 j'utilise la barre d'outil Google et c'est une de ses fonctionnalités (Suggestions en cas d'erreurs de navigation) qui entrait en conflit avec la redirection 404 de CMSMS. J'ai donc désactivé cette fonction et ça marche nickel.

Voilà ce que dit Google à propos de ceci :

Citation :Des suggestions s'affichent sur la barre d'outils lorsque la page Web que vous tentez d'ouvrir est introuvable.

Activer ou désactiver les suggestions en cas d'erreurs de navigation
1.Cliquez sur l'icône représentant une clé à molette clé à molette dans la barre d'outils Google.
2.Dans l'onglet Général, à la section "Outils de navigation sur le Web", cochez (ou décochez) la case "Suggestions en cas d'erreurs de navigation".
3.Cliquez sur Enregistrer.
Répondre
#17
Si ça résout complètement ton souci n'oublies pas le [Résolu] dans le début du titre de ton tout premier message en l'éditant
J-C Etiemble v 2.2.xx
Répondre
#17
Si ça résout complètement ton souci n'oublies pas le [Résolu] dans le début du titre de ton tout premier message en l'éditant
J-C Etiemble v 2.2.xx
Répondre


Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)