Ie7 et rewriting déficient ;)

WRInaute impliqué
Bonjour à tous,

Je viens de m'apercevoir ce matin que toutes les pages de deuxième niveau de mon pitit annuaire sont inaccessibles sous IE7 alors que ça fonctionne très bien avec FF et toute la clique. Je pense que ça vient de l'url rewriting.

J'ai un htacces qui contient ceci :

Code:
RewriteEngine on
RewriteRule ^annuaires-peche/$  /categories.php?id_categorie=24  [L]
RewriteRule ^blogs/$  /categories.php?id_categorie=25  [L]
RewriteRule ^clubs-associations/$  /categories.php?id_categorie=1  [L]
RewriteRule ^coins-de-peche/$  /categories.php?id_categorie=2  [L]
RewriteRule ^detaillants/$  /categories.php?id_categorie=3  [L]
RewriteRule ^ecoles-de-peche/$  /categories.php?id_categorie=4  [L]
RewriteRule ^fabricants/$  /categories.php?id_categorie=5  [L]
RewriteRule ^federations/$  /categories.php?id_categorie=6  [L]
RewriteRule ^guides-de-peche/$  /categories.php?id_categorie=7  [L]
RewriteRule ^magazines-revues/$  /categories.php?id_categorie=8  [L]
RewriteRule ^peche-a-la-mouche/$  /categories.php?id_categorie=9 [L]
RewriteRule ^peche-de-l-esturgeon/$  /categories.php?id_categorie=15 [L]
RewriteRule ^peche-de-la-carpe/$  /categories.php?id_categorie=10  [L]
RewriteRule ^peche-de-la-truite/$  /categories.php?id_categorie=11  [L]
RewriteRule ^peche-des-carnassiers/$  /categories.php?id_categorie=13  [L]
RewriteRule ^peche-du-silure/$  /categories.php?id_categorie=12  [L]
RewriteRule ^peche-en-mer/$  /categories.php?id_categorie=14  [L]
RewriteRule ^pisciculture/$  /categories.php?id_categorie=16  [L]
RewriteRule ^sites-generalistes/$  /categories.php?id_categorie=17  [L]
RewriteRule ^(.*)/((.*)-(.*)+)\.php$  /multi-fiche.php?categorie=$1&url_clean=$2 [L]

La dernière règle fonctionne bien avec tous les navigateurs.

Pour vous rendre compte de la chose -http://annuaire.karpeace.com

Voilà, si quelqu'un a une idée pour faire avancer le schmilblick ben ça fera plaisir :D
 
WRInaute occasionnel
Bonjour,

Je vois une chose, j'aurais mis le slashe de départ :

Code:
RewriteRule ^/annuaires-peche/$  /categories.php?id_categorie=24  [NC,L]

Ainsi que "non case sensitive" : NC

Essaye pour voir

A+
 
WRInaute impliqué
annuaires-peche, blogs et companie sont à la racine ?

A la racine du sous domaine oui ; en réalité là -> -http://www.karpeace.com/annuaire/

:wink:

J'ai essayé le nc mais ça ne donne rien. Pour le slash j'avais déjà essayé...

Il y a sans doute un brol avec le sous-domaine mais étant légèrement branque sur les bords (et au milieu) je ne vois pas du tout quoi 8)

Une chose est sûre, si je modifie les règles ou que j'enlève la racine dans la deuxième partie, ça ne fonctionne pas non plus ...
 
WRInaute occasionnel
Bon,

pour le NC c'était juste pour paufiner :wink:

sinon, l'erreur reportée est "serveur introuvable" ! 8O
j'avais pas vu cà !

si tu supprime le slashe de fin dans la barre d'adresse ca devient 404 !

As tu regarder dans tes logs ? Parce que là on pourrait croire qu'avec IE ton GET n'atteint même pas ton serveur.

essaye de supprimer le slashe dans ton rewrite ET dans la source...
 
WRInaute impliqué
Ben exactement, on dirait qu'il ne chope pas la GET, trop fort ce IE :wink:

Si ça ne va pas je ferai une nouvelle règle, je n'ai qu'une quinzaine de lignes à me taper donc ça va ...

Je vais essayer d'ici une heure parce que je dois partir ... je vous tiens au courant ...

Merci pour le coup de main en tout cas :D

@+
 
WRInaute impliqué
C'est pourtant le serveur qui interprete le rewrite, je ne vois pas le rapport avec ie7, non?

Ben oui ... j'y comprends rien ...

Je viens de tester avec safari, opera et FF et ça fonctionne tandis qu'avec IE7 ça plante :wink:

Tu as testé aussi ? On sait jamais que ça viendrait de chez moi ...
 
WRInaute accro
SuperCureuil a dit:
Je viens de tester avec safari, opera et FF et ça fonctionne tandis qu'avec IE7 ça plante :wink:

Tu as testé aussi ? On sait jamais que ça viendrait de chez moi ...
Non j'avais pas testé, en effet ya une cou**le dans le potage..c'est vraiement étrange.
Comme je suis en bille en rewriting je vais pas pouvoir t'aider..moi c'est webmasterdelamogere qui m'avait dépanné.
 
WRInaute impliqué
As tu regarder dans tes logs ? Parce que là on pourrait croire qu'avec IE ton GET n'atteint même pas ton serveur.

8O Je viens de lier un peu ces fameux logs ... j'ai la nausée :?

J'ai essayé en enlevant les slash dans le htaccess et dans mon url et ... je n'ai plus d'erreur, mais il me sort la page d'accueil à chaque fois :wink:

:evil:
 
WRInaute occasionnel
De toute façon y a un truc bizarre dans ta config.

Je viens de regarder ton DNS et le sous-domaine n'en est pas un mais un alias !! Je suis pas certain que cela puisse marcher comme ca.
 
WRInaute impliqué
De toute façon y a un truc bizarre dans ta config.

Grrr ...

Je viens de regarder ton DNS et le sous-domaine n'en est pas un mais un alias !! Je suis pas certain que cela puisse marcher comme ca.

Dis-moi en plus, grand fou :mrgreen: lol

Tu fais comment pour mater mon dns ? :? 8)

Tout ce que j'ai fait c'est justement installer un sous-domaine dans ma console d'admin ... Ke Ke Ce un alias ? La différence avec un sous-domaine ?

Tu conviendras tout de même que c'est étrange que le phénomène soit uniquement répercuté sur IE7 (p-ê version antérieures, même pas testé :mrgreen: )

Je pense que je vais écrire une autre règle ...

EDIT : je m'aperçois dans mon admin que le sous-domaine pointe vers le répertoire www/annuaire (sans le slash) ... Tu penses que ça peut venir de là ?

EDIT2 : je viens de rajouter le slash mais apparemment rien n'y fait ... Il faut un temps de propagation pour ce genre de trucs ?
 
WRInaute occasionnel
Avec un outil de controle de dns (nslookup) tout bêtement... :roll:

Alias = surnom.

Normalement un sous-domain doit avoir le même type d'enregistrement ( A record ) qu'un domaine, après tout bidule.com n'est qu'un sous domaine de com.

ceci dis je suis pas expert réseau et ne suis pas sur que ca vienne de ca.

Autre chose : tu as un code 301 en retour sur cet URI :

Code:
HTTP/1.1 301 Moved Permanently
Date: Thu, 10 Apr 2008 16:31:43 GMT
Server: Apache
X-Powered-By: PHP/4.4.4
Location: 
Vary: Accept-Encoding
Connection: close
Content-Type: text/html; charset=iso-8859-1

Or l'entête "location" est vide !! ca ca craint.

donc 2 questions : d'ou sort cette redirection 301 et comment ca se fait que tu ne donne pas d'URI de destination dans cette redirection ( Location ).

Je crois qu'on touche le pb : Firefox est peut-etre plus souple avec ce genre de co***ries... :wink:
 
WRInaute impliqué
EDIT Hourra (ou presque)

En fait j'ai un switch qui teste une variable et qui redirige vers la bonne nouvelle page ... et tous mes 'case' sont bien rédigés.

Code:
<?php
if (isset($_SERVER['QUERY_STRING'])&&($_SERVER['QUERY_STRING']!='')) {
	switch($_GET['id_cat']){
		case 1 :
			$nouvelleAdresse = 'http://annuaire.karpeace.com/clubs-associations/';
			break;
		case 2:
			$nouvelleAdresse = 'http://annuaire.karpeace.com/coins-de-peche/';
			break;
		case 3:
			$nouvelleAdresse = 'http://annuaire.karpeace.com/detaillants/';
			break;
		case 4:
			$nouvelleAdresse = 'http://annuaire.karpeace.com/ecoles-de-peche/';
			break;
		case 5:
			$nouvelleAdresse = 'http://annuaire.karpeace.com/fabricants/';
			break;
		case 6:
			$nouvelleAdresse = 'http://annuaire.karpeace.com/federations/';
			break;
		case 7:
			$nouvelleAdresse = 'http://annuaire.karpeace.com/guides-de-peche/';
			break;
		case 8:
			$nouvelleAdresse = 'http://annuaire.karpeace.com/magazines-revues/';
			break;
		case 9:
			$nouvelleAdresse = 'http://annuaire.karpeace.com/peche-a-la-mouche/';
			break;
		case 10:
			$nouvelleAdresse = 'http://annuaire.karpeace.com/peche-de-la-carpe/';
			break;
		case 11:
			$nouvelleAdresse = 'http://annuaire.karpeace.com/peche-de-la-truite/';
			break;
		case 12:
			$nouvelleAdresse = 'http://annuaire.karpeace.com/peche-du-silure/';
			break;
		case 13:
			$nouvelleAdresse = 'http://annuaire.karpeace.com/peche-des-carnassiers/';
			break;
		case 14:
			$nouvelleAdresse = 'http://annuaire.karpeace.com/peche-en-mer/';
			break;
		case 15:
			$nouvelleAdresse = 'http://annuaire.karpeace.com/peche-de-l-esturgeon/';
			break;
		case 16:
			$nouvelleAdresse = 'http://annuaire.karpeace.com/pisciculture/';
			break;
		case 17:
			$nouvelleAdresse = 'http://annuaire.karpeace.com/sites-generalistes/';
			break;
		case 24:
			$nouvelleAdresse = 'http://annuaire.karpeace.com/annuaires-peche/';
			break;
		case 25:
			$nouvelleAdresse = 'http://annuaire.karpeace.com/blogs/';
			break;
	}
header('Location: '.$nouvelleAdresse); //Redirection HTTP
header('HTTP/1.1 301 Moved Permanently');
header('Status: 301 Moved Permanently');
header('Content-Type: text/html; charset=iso-8859-1');
}
?>

MAIS je viens de tester en enlevant ce code et ça fonctionne :wink:

Ie interprête le rewrite comme une query string et ça provoque une erreur puisqu'aucune valeur ne correspond à la query telle qu'il la perçoit ...

Maintenant je suis emmerdé parce que ce système fonctionnait bien et gg n'a pas encore indexé les nouvelles url ...

Que faire 8)

En tout cas un grand merci pour ton éclairage, ça me rend un fier service :D
 
WRInaute occasionnel
Je ne comprends pas pourquoi tu fais une redirection permanente : sur mes rewrite j'ai 200 comme code de retour !!

Le navigateur ne doit pas s'en rendre compte !

Je m'explique

envoi de la requete :
Code:
Get /annuaires-peche/ HTTP/1.1
Host: annuaire.karpeace.com
etc...

ton rewrite intercepte et envoi à ton script : /categories.php?id_categorie=24
OK ?
Apache retourne le contenu de /categories.php?id_categorie=24 comme si c'était /annuaires-peche/ le navigateur ne VOIT PAS LA MANIP !!

retour :
Code:
HTTP/1.1 200 OK
Date: Thu, 10 Apr 2008 16:31:43 GMT 
Server: Apache 
X-Powered-By: PHP/4.4.4 
Vary: Accept-Encoding 
Connection: close 
Content-Type: text/html; charset=iso-8859-1

Tu me suis ? ne t'occupes plus du rewrite dans ton code php.

Tiens moi au courant, bon courage.
A+
 
WRInaute impliqué
Je ne comprends pas pourquoi tu fais une redirection permanente : sur mes rewrite j'ai 200 comme code de retour !!

Tu cherches à m'embrouiller ou quoi 8) :D

Bon je fais une redirection parce que mes anciennes pages qui sont indexées dans gg renvoient vers des 404 (et il y a des termes dans la table qui ont changé ;) ... donc je fais une redirection permanente mais ça coince parce que c'est la même page tandis que pour celles ou j'ai changé de page (dans d'autres rubriques) ben le procédé fonctionne :wink:

En résume le rewrite rewrite et le location locationne :mrgreen:


Plus ou moins ...

ne t'occupes plus du rewrite dans ton code php.

Par contre je ne vois pas ...

/categories.php?id_categorie=24 était anciennemment categories.php?id_cat=24 (=pages indexées dans google). Tu confonds les deux query mais la seconde n'existe plus :wink:

Je vais réfléchir à ça et je trouverai bien une soluce d'ici demain ...

Je me répète mais ... merci pour ton coup de main, dès que j'ai une soluce acceptable je la poste ici ...

Bonne soirée

PS Totalement hors-sujet mais ...chapeau pour argus-auto, il est super pratique ! J'ai vendu une voiture complète en pièces détachées en me basant sur les cotes de ce site !
 
WRInaute occasionnel
ok ok !

/categories.php?id_categorie=24 était anciennemment categories.php?id_cat=24 (=pages indexées dans google). Tu confonds les deux query mais la seconde n'existe plus

donc :

Code:
RewriteRule ^/categories.php?id_categorie=24$ /annuaires-peche/ [R=301, NC,L]
.... toutes tes redirections
tes rewrite :
RewriteRule ^/annuaires-peche/$  /categories.php?id_categorie=24  [NC,L]

En résumé si quelqu'un connait categories=24 tu lui dis que définitivement c'est /annuaires-peche/ ou autres...
si quelqu'un arrive avec le bon URI tu lui livre le contenu categories=24

N'oublie pas le NC sinon t'auras des beaux 404 si quelqu'un tappe une majuscule...

A+
 
WRInaute impliqué
Salut,

Je n'ai pas eu bcp de temps aujourd'hui pour tester tout ça ... j'ai essayé ton code mais ça me renvoie une erreur 500 sur tout le répertoire :wink:

De tt façon je vais attendre encore qq jours parce que je viens de voir que les nouvelles url's étaient indexées et avaient remplacé les autres : :D

https://www.google.be/search?q=site:annu ... art=0&sa=N

Je ne vends rien, ça ne vient plus à deux-trois jours, le plus important c'était de ne pas balancer une centaines de nouvelles url d'un coup tout en en faisait disparaître 100 autres ... :wink:

Je te fais quand même chevalier d'honneur de la légion Karpeace :mrgreen:

Merci pour ton dévouement et bonne soirée

@+

L'écureuil
 
WRInaute occasionnel
Bah, mon code c'est pour t'illustrer mes propos, tout ca dépend du contexte de ton htaccess...

peut-etre il faut :
Code:
RewriteBase / ou ajouter .* "mais je me méfie de .*"
RewriteRule ^.*/categories.php?id_categorie=24$ /annuaires-peche/ [R=301, NC,L] 
.... toutes tes redirections 
tes rewrite : 
RewriteRule ^.*/annuaires-peche/$  /categories.php?id_categorie=24  [NC,L]
Cela peut dépendre.

tu as un article de base sur WRI :

https://www.webrankinfo.com/analyses/aut ... utants.php
Doc Apache en Français :
http://illiweb.com/manuel/Apache_1.3_VF ... write.html
Sinon webmaster-hub.
La maitrise des redirections et du rewriting et cruciale maintenant en webmastering...

A+
 
Discussions similaires
Haut