redirection de pages d'erreurs

Discussion dans 'URL Rewriting et .htaccess' créé par dcz, 27 Septembre 2005.

  1. dcz
    dcz WRInaute impliqué
    Inscrit:
    2 Mars 2005
    Messages:
    668
    J'aime reçus:
    0
    Hello,
    Donc, mieux vaut tard que jamais, je viens de me rendre compte (merci jeunZ) que mes pages dérreur étaient en 302.

    Mon problème est donc le suivant :
    J'utilise une page d'érreur error.php qui est appélée comme suit dans le .htaccess :

    Code:
    ErrorDocument 400 /error.php?mode=400
    ErrorDocument 403 /error.php?mode=403
    ErrorDocument 404 /error.php?mode=404
    ErrorDocument 500 /error.php?mode=500
    
    L'url finale en cas d'affichage de la page est plus complexe car il intègre des paramètres de recherche.

    Des truc du genre error.php?mode=500&blabli&blablo&etencoreblabblabli&etc...

    Je ne sais donc pas comment faire pour rétablir le bon http header.

    jeunZ suggère d'utiliser plutot des truc du genre ErrorDocument 400 /400.php mais il fadrait alors faire du rewriting pour que 400.php soit reconnu comme /error.php?mode=400&blabli&blablo&etencoreblabblabli&etc...

    Ce qui m'as pas lair bien facile si tant est que ce soit faisable.

    Enfin si quelqu'un à une idée, je suis preneur.


    ++
     
  2. dmathieu
    dmathieu WRInaute accro
    Inscrit:
    9 Janvier 2004
    Messages:
    5 596
    J'aime reçus:
    0
    Code:
    header('HTTP/1.1 200 OK');
    tu remplace l'erreur 302 par une "erreur" 200, qui dit que la page s'est chargée correctement.
    et plus aucun probleme ...
     
  3. dcz
    dcz WRInaute impliqué
    Inscrit:
    2 Mars 2005
    Messages:
    668
    J'aime reçus:
    0
    héhé, le problème c'est que je ne sais pas comment envoyer le header.

    Dans error.php, j'ai bien :
    Code:
    switch( $mode )
    {
    	case '400':
    		include ($phpbb_root_path.'language/lang_' . $board_config['default_lang'] . '/lang_error_400.'.$phpEx);
    		$order_by = "user_regdate $sort_order LIMIT $start, " . $board_config['topics_per_page'];
    		break;
    	case '401':
    		include ($phpbb_root_path.'language/lang_' . $board_config['default_lang'] . '/lang_error_401.'.$phpEx);
    		$order_by = "username $sort_order LIMIT $start, " . $board_config['topics_per_page'];
    		break;
    	case '403':
    		include ($phpbb_root_path.'language/lang_' . $board_config['default_lang'] . '/lang_error_403.'.$phpEx);
    		$order_by = "user_from $sort_order LIMIT $start, " . $board_config['topics_per_page'];
    		break;
    	case '404':
    		include ($phpbb_root_path.'language/lang_' . $board_config['default_lang'] . '/lang_error_404.'.$phpEx);
    		$order_by = "user_posts $sort_order LIMIT $start, " . $board_config['topics_per_page'];
    		break;
    	case '500':
    		include ($phpbb_root_path.'language/lang_' . $board_config['default_lang'] . '/lang_error_500.'.$phpEx);
    		$order_by = "user_regdate $sort_order LIMIT $start, " . $board_config['topics_per_page'];
    		break;
    	case 'nimda':
    		include ($phpbb_root_path.'language/lang_' . $board_config['default_lang'] . '/lang_error_nimda.'.$phpEx);
    		$order_by = "username $sort_order LIMIT $start, " . $board_config['topics_per_page'];
    		break;
    	case 'codered':
    		include ($phpbb_root_path.'language/lang_' . $board_config['default_lang'] . '/lang_error_codered.'.$phpEx);
    		$order_by = "user_from $sort_order LIMIT $start, " . $board_config['topics_per_page'];
    		break;
    	case 'badua':
    		include ($phpbb_root_path.'language/lang_' . $board_config['default_lang'] . '/lang_error_badua.'.$phpEx);
    		$order_by = "user_posts $sort_order LIMIT $start, " . $board_config['topics_per_page'];
    		break;
    	case 'noagent':
    		include ($phpbb_root_path.'language/lang_' . $board_config['default_lang'] . '/lang_error_noagent.'.$phpEx);
    		$order_by = "username $sort_order LIMIT $start, " . $board_config['topics_per_page'];
    		break;
    	case 'noformmail':
    		include ($phpbb_root_path.'language/lang_' . $board_config['default_lang'] . '/lang_error_noformmail.'.$phpEx);
    		$order_by = "user_from $sort_order LIMIT $start, " . $board_config['topics_per_page'];
    		break;
    	case 'leech':
    		include ($phpbb_root_path.'language/lang_' . $board_config['default_lang'] . '/lang_error_leech.'.$phpEx);
    		$order_by = "user_from $sort_order LIMIT $start, " . $board_config['topics_per_page'];
    		break;
    	default:
    		include ($phpbb_root_path.'language/lang_' . $board_config['default_lang'] . '/lang_error_why.'.$phpEx);
    		$order_by = "user_regdate $sort_order LIMIT $start, " . $board_config['topics_per_page'];
    		break;
    }
    Qui me donne envie d'envoyer à ce stade le header approprié, mais je ne sais pas comment cela focntionne. Y a t il une variable ou une fonction consacrée pour apache ou est ce du pur php?

    Merci de ta réponse en tous cas ...

    ++
     
  4. dmathieu
    dmathieu WRInaute accro
    Inscrit:
    9 Janvier 2004
    Messages:
    5 596
    J'aime reçus:
    0
    la fonction header permet d'envoyer le header.
    à utiliser exactement comme je te l'ait donné.

    et je te conseille de le placer tout en haut de ta page, tu n'aura pas de probleme de headers already sent comme cela ;)
     
  5. dcz
    dcz WRInaute impliqué
    Inscrit:
    2 Mars 2005
    Messages:
    668
    J'aime reçus:
    0
    ahh bah en fait il marche nikel mon truc lol.

    C'etais juste $phpbb_root_path = './'; au lien de $phpbb_root_path = '/';, qui bizarrement se retrouvais dans l'url, sauf, encore plus bizarement, pour les 400.

    Du coup c'est corrigé et tout marche direct.

    Merci encore, rien de tel qu'une piste pour fourrer sont nez dans du code

    ++
     
  6. dcz
    dcz WRInaute impliqué
    Inscrit:
    2 Mars 2005
    Messages:
    668
    J'aime reçus:
    0
    Lol en fait ça ne marchais pas, j'avais le bon header, parce que de faire ce que j'ai fait renvoyais une pure 404 (pas de chargement de error.php), du coup l'outil wri revoyais le bon header lol, mais la page n'existait vraimebt pas.

    Donc, je me suis cassé la tête sur ce bout de code :
    Code:
    	redirect($phpbb_root_path . 'error.' . $phpEx . '?mode=' . $mode . '&show&search_keywords=' . $searchinfo[0] . '&search_engine=' . $searchinfo[1] . '&search_engine_url=' . $searchinfo[2] . '&search_engine_count=' . $searchinfo[3] . '&search_start_time=' . (time() - $time));
    
    Qui je le crois est responsable de la 302.

    Le problème c'est que j'ai beau eu chercher, je n'ai rien trouver (du tout lol) sur la syntaxe de la fonction redirect, a n'y rien comprendre.
    J'aurais espéré que cette fonction integre une option d'envois de header, mais je ne trouve pas.

    Du coup je me demande comment faire.

    1) redirect peremt il d'envoyer un header ?
    2) si non, y'a it moyen, en utilisant le switch que j'ai posté plus haut, d'ajouter à ce stade le bon header calculé plus haut et comment ? (j'ai bien essayé, mais ajouter header('HTTP/1.1 200 OK'); (ou autre) avant ou après le redirect ne change rien.
    3) faut il donc enviseager des règle d'url rewriting (404.php => error.php?mode=404&{query string} et comment?

    Voilà si vous avez des pistes ....
    ++
     
  7. dcz
    dcz WRInaute impliqué
    Inscrit:
    2 Mars 2005
    Messages:
    668
    J'aime reçus:
    0
    Bon, bah j'ai eu recours à la méthode forte :
    J'ai tout bonnement repris le code de ma page d'erreur pour qu'elle ne se redirige plus vers elle même, et ça marche.
    Ah les header !!!

    ++
     
Chargement...
Similar Threads - redirection erreurs Forum Date
Http vers https - erreurs de redirection Netlinking, backlinks, liens et redirections 6 Février 2017
Faire pointer le NDD sur un wordpress : erreurs boucle de redirection Noms de domaine et référencement 8 Novembre 2013
Danger de redirection des erreurs vers page d'accueil? Débuter en référencement 22 Novembre 2009
Framework et gestion des erreurs 404 (redirection ou pas?) Débuter en référencement 11 Décembre 2008
Redirection pour les erreurs 404 Administration d'un site Web 13 Février 2008
Redirection d'erreurs URL Rewriting et .htaccess 30 Juillet 2007
Redirection des erreurs URL Rewriting et .htaccess 22 Mars 2007
[REGLE] Redirection 301 et erreurs URL Rewriting et .htaccess 12 Octobre 2006
Redirections des Erreurs DNS Problèmes de référencement spécifiques à vos sites 25 Février 2005
Erreur liée à des redirections Débuter en référencement 15 Juin 2022
WordPress Redirections pour changement de domaine et structure de langues Référencement international (langues, pays) 12 Juin 2022
redirection plusieurs Url vers une page URL Rewriting et .htaccess 10 Juin 2022
Redirection 301 Débuter en référencement 29 Mai 2022
Redirection pertinente? Problèmes de référencement spécifiques à vos sites 26 Mai 2022
Redirection 404 via le .htaccess / pb avec les liens relatifs Débuter en référencement 5 Mai 2022
WordPress Petit souci de redirection htaccess URL Rewriting et .htaccess 3 Mai 2022
problème de redirection non souhaitée Administration d'un site Web 28 Avril 2022
Redirection nom de domaine vers site web principal Référencement Google 28 Avril 2022
Erreur liée à des redirections sur Google Search Console Problèmes de référencement spécifiques à vos sites 23 Mars 2022
Redirection d'un site vers un autre Crawl et indexation Google, sitemaps 25 Février 2022