Aller au contenu

redirection 301 marche pas avec internet explorer


Sujets conseillés

Bonjour,

Ce n'est pas un problème IE. Ton code ne fonctionne pas normalement, mais je ne sais pas où est le problème.

Essaie:

RedirectPermanent guide.php http://www.webologix.com/index.php?Itemid=32&option=com_linx

Jean-Luc

Lien vers le commentaire
Partager sur d’autres sites

peut-être qu'il bloque sur le <body onLoad="java script:initMoreInfo('infoBlockID');">

mais je n'ai pas eu le courage d'aller ouvrir tes fichiers js :)

sinon, pourquoi tu fais une différence entre les urls relatives et absolues ? habituellement je code :

RewriteRule ^guide.php$ index.php?Itemid=...option=com_linx [R=301]

Lien vers le commentaire
Partager sur d’autres sites

Jean Luc, ton RedirectPermanent me donne également erreur404 mais avec la page 404 de mon site. J'ai laissé mon .htaccess avec ce redirect permanent pour guide.php afin que tu puisses voir le résultat. Les autres pages comme references.php sont restées avec l'ancienne syntaxe de RewriteRule et donnent toujours l'erreur "Impossible d'afficher la page" au niveau d'IE.

Qu'est-ce qui te fait dire que mon code ne fonctionne pas normalement ?

Georges, si il y avait un problème au niveau du code la page cible http://www.webologix.com/index.php?Itemid=...option=com_linx ne s'afficherait pas, non ? Pour les url absolues tu as raison, j'ai toujours vu ça comme ça et je croyais que ça ne marchait pas en relatif.

Une autre idée, car je suis toujours bloqué ?

:sick:

Lien vers le commentaire
Partager sur d’autres sites

sinon, pourquoi tu fais une différence entre les urls relatives et absolues ? habituellement je code :

RewriteRule ^guide.php$ index.php?Itemid=...option=com_linx [R=301]

Déjà, pour débugger, il y a des caractères en trop...

Qu'est-ce qui te permet d'affirmer que l'URL est bien guide.php et non /guide.php ? ;)

Donc si on veut s'assurer du fonctionnement, on écrira plutôt:

RewriteRule guide.php index.php?Itemid=32&option=com_linx [R,L]

En faisant éventuellement précéder index.php par un / si on est sur un mutualisé OVH.

Et je remarque que tu as tendance à oublier le flag [L] (pour Last) ... il n'est pas indispensable en cas de réécriture externe, mais l'est pour les réécritures internes.

Lien vers le commentaire
Partager sur d’autres sites

Déjà, pour débugger, il y a des caractères en trop...

Où ça ?

Qu'est-ce qui te permet d'affirmer que l'URL est bien guide.php et non /guide.php ? ;)

Rien. J'ignorais même qu'il y ait une différence.

Donc si on veut s'assurer du fonctionnement, on écrira plutôt:

RewriteRule guide.php index.php?Itemid=32&option=com_linx [R,L]

Alors là merci beaucoup :thumbsup: Grâce à ce petit "L" ça marche avec IE...mais avec FIREFOX l'url est maintenant modifiée en insérant le chemin complet depuis la racine du serveur (dédié) ! :blush: /home/webologi/www

Et je remarque que tu as tendance à oublier le flag [L] (pour Last) ... il n'est pas indispensable en cas de réécriture externe, mais l'est pour les réécritures internes.

Je suis vraiment un newbie en la matière, je ne connaissais même pas ce flag, pas vraiment les autres non plus,précisément. Je me suis jusqu'à présent contenté de récupérer des conseils sur le WEB de ceux qui connaissent vraiment Apache.

Last veut-il dire qu'on arrête le traitement après cette règle ?

Lien vers le commentaire
Partager sur d’autres sites

Alors là merci beaucoup :thumbsup: Grâce à ce petit "L" ça marche avec IE...mais avec FIREFOX l'url est maintenant modifiée en insérant le chemin complet depuis la racine du serveur (dédié) ! :blush: /home/webologi/www

Je suis vraiment un newbie en la matière, je ne connaissais même pas ce flag, pas vraiment les autres non plus,précisément. Je me suis jusqu'à présent contenté de récupérer des conseils sur le WEB de ceux qui connaissent vraiment Apache.

Last veut-il dire qu'on arrête le traitement après cette règle ?

Pour que l'URL ne soit pas modifiée il faut enlever le flag R (qui force une réécriture externe). Je l'ai laissé mais c'est un oubli de ma part.

Donc ta règle devient:

RewriteRule guide.php index.php?Itemid=32&option=com_linx [L]

Le flag L dit à mod_rewrite qu'il faut arrêter letraitement des réécritures si cette règle est validée.

Sinon, il continue avec les règles suivantes.... (comportement par défaut), et si tu as une règle qui traite index.ph, elle sera exécutée elle aussi.

Il vaut mieux mettre TOUJOURS le L, sauf lorsque tu sais avec certitude ce que tu fais ;)

Dan

PS: je te suggère d'aller lire les articles dans les publications du Hub, voir ceux de cette page: http://www.webmaster-hub.com/publication/_Dan_.html

Lien vers le commentaire
Partager sur d’autres sites

Salut ;)

A la décharge de kmchen les ressources type celles du hub, sont asez rares sur le sujet (ou pas "facile à trouver" selon mes habitudes de recherche).

On trouve du très technique ou du "light" très facilement, mais l'intermédiaire (pédagogique et exhaustif !!) :P

J'ai moi même mis les pieds dans le rewrite, mais c'est avec un certain "coup de bol" que cela c'est bien passé :blush:

++

Lien vers le commentaire
Partager sur d’autres sites

Re' ;)

C'est pour ça que j'ai bien spécifier selon mes "habitudes de recherche", J'ai pas cherché mod_rewrite :lol:

Pour illustrer ma "critique" l'exemple du sigle ^ est intéressant. J'avais bien lu l'article du hub (merci au passage ), mais voilà ce qu'il en dit:

cest la première partie de la règle, celle qui determine la chaîne de caractères que le module devra rechercher pour la réécrire. Elle contient deux caractères spéciaux marquant le début (^) et la fin ($) de la ligne

Formulé comme ça, j'avais compris que ce sigle était obligatoire en début de règle :blush: J'ai été surpris quand tu l'as enlevé ci avant :P

Sont quand même bien les articles du Hub hein , mais pas trop pour les nuls :lol:

++

Lien vers le commentaire
Partager sur d’autres sites

Tout marche parfaitement maintenant et en plus j'ai compris plein de choses en peu de temps là où il m'aurait fallut des heures à compulser des docs pas fraiches.

Une dernière question cependant : comment faire une redirection permanente R=301 sans qu'Apache me mette tout le chemin depuis la racine physique du serveur au lieu de la racine du serveur virtuel:

http://domaine.com/nouveau_fichier.php et non http://domaine.com/home/domaine/www/nouveau_fichier.php

Merci pour votre aide éclairée et efficace :flower:

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...