Relocation vers un script et adresse de base

Consultez la formation URL Rewriting et sites dynamiques de WebRankInfo / Ranking Metrics

goa103
WRInaute discret
WRInaute discret
 
Messages: 78
Inscription: Jeu Mai 15, 2003 9:49

Relocation vers un script et adresse de base

Message le Ven Nov 24, 2006 18:26

Bonjour,

Je souhaite qu'un accès à l'adresse http://site/rubrique reloge vers l'adresse http://site/script_rubrique.php. Seulement l'adresse de base considérée semble être celle de la rubrique, pas l'adresse de base du site. Par exemple si j'accède à l'adresse http://site/rubrique, l'adresse des autres rubriques devient http://site/rubrique/autre_rubrique alors que je souhaite avoir http://site/autre_rubrique.

Voici le contenu de mon fichier .htaccess :
RewriteEngine on
RewriteBase /
RewriteRule ^([a-z]+)/?$ $1.php [L]


ça fonctionne uniquement sous IE quand j'accès à l'adresse sans le / terminal. Dès que j'ajoute le /, ça ne fonctionne plus. Sous Firefox il ajoute automatiquement un / et ça ne fonctionne donc jamais.

Merci par avance pour votre aide,
JM.

goa103
WRInaute discret
WRInaute discret
 
Messages: 78
Inscription: Jeu Mai 15, 2003 9:49

OVH, .htaccess fantôme et guides mod_rewrite

Message le Ven Nov 24, 2006 20:21

Le problème vient peut-être de mon hébergeur, OVH, car quand je supprime le fichier .htaccess, c'est comme si il existait encore. J'ai pensé à un problème de cache... C'est aussi assez bizarre car la relocation fonctionne pour d'anciennes rubriques mais pas pour la nouvelle que je viens de créer. Donc à suivre j'ai contacté le support client...

Pour info OVH propose des guides intéressants dont HtaccessModRewrite. Si ça peut en aider certains :)

goa103
WRInaute discret
WRInaute discret
 
Messages: 78
Inscription: Jeu Mai 15, 2003 9:49

Message le Lun Nov 27, 2006 16:14

Quelqu'un a des infos concernant des .htaccess fantômes ? Mon fichier est on ne peut plus simple et je ne vois vraiment pas d'où peut venir le problème :

RewriteEngine on
RewriteRule ^([a-z]+)/?$ $1.php


Avec ou sans les relocations sont effectuées. C'est à n'y rien comprendre. Et les comportements sont différents selon les navigateurs.

magic corp.
WRInaute impliqué
WRInaute impliqué
 
Messages: 425
Inscription: Jeu Juin 17, 2004 9:56

Message le Lun Nov 27, 2006 16:47

J'ai eu ce problème sur mon serveur de test (easyphp)

apache ou le mod_rewrite dois avoir un cache où il stock les règles (il accepte les nouvelle règle mais garde les ancienne et donc il peu y avoir conflits) et il faut un certain temps des fois pour qu'il supprime les ancienne règle.

Par contre j'ai pas d'info sur comme éviter ce problème. Seul conseil, c'est de faire des règle très précise (restrictive) mais cette solution n'est valable que pour du test pas pour de la prod.
Genre une règle :
Code: Tout sélectionner
RewriteRule ^test1-([a-z]+) $1.php [L]

avec des lien style : ******.***/test1-pouette
Et si tu veux la changer et tester touts de suite :
Code: Tout sélectionner
RewriteRule ^test2-(.*) $1.php [L]

avec des lien style : ******.***/test2-pouette

Comme ça le 2ème lien ne fonctionne pas avec le 1ere règle mais avec la 2eme donc pas d'interférence et tu peu faire tes test urgent. Mais ça reste du bricolage et c'est limiter dans l'utilisation (j'ai jamais eu envi de chercher la bonne solution :) )

goa103
WRInaute discret
WRInaute discret
 
Messages: 78
Inscription: Jeu Mai 15, 2003 9:49

Message le Mar Nov 28, 2006 21:09

magic corp. a écrit:J'ai eu ce problème sur mon serveur de test (easyphp)

apache ou le mod_rewrite dois avoir un cache où il stock les règles (il accepte les nouvelle règle mais garde les ancienne et donc il peu y avoir conflits) et il faut un certain temps des fois pour qu'il supprime les ancienne règle.


Pour pour tes astuces, l'idée d'utiliser un préfixe test n'est pas mauvaise... puisque c'est celle que j'ai eue :P.

Bizarrement les relocations semblent être faites de manière automatique sur le serveur mutualisé OVH. Par exemple l'adresse http://site/rubrique reloge automatiquement sur le script rubrique.php ! ça fonctionne comme ça pour toutes les rubriques sauf pour une rubrique cv, peut-être à cause du nombre de caractères.

Par exemple la règle « RewriteRule ^cv$ cv.php [L] » ne fonctionne pas mais « RewriteRule ^test_cv$ cv.php [L] » aucun problème. C'est comme si les règles avec trop peu de caractères étaient ignorées. Et ça sous Firefox. Sous IE ça fonctionne parfaitement ! Je ne vois vraiment pas le rapport avec le navigateur. Est-ce que les navigateurs font des relocations vers des scripts PHP par défaut ? ça me semble vraiment pas logique.

Sinon tu as raison pour l'histoire du cache car supprimer le fichier .htaccess ne change parfois rien. Il me faut alors créer une nouvelle règle et charger à nouveau le fichier.

goa103
WRInaute discret
WRInaute discret
 
Messages: 78
Inscription: Jeu Mai 15, 2003 9:49

Message le Mar Nov 28, 2006 21:23

Ma solution pour l'instant est de proposer l'adresse http://site/curriculum_vitae plutôt que http://site/cv.

Il y a vraiment un problème de cache au niveau du serveur car parfois la suppression de fichiers n'affecte en rien la navigation. C'est bien pour optimiser mais pour mettre à jour son site... Un véritable cauchemar :(

goa103
WRInaute discret
WRInaute discret
 
Messages: 78
Inscription: Jeu Mai 15, 2003 9:49

Message le Mar Nov 28, 2006 21:37

goa103 a écrit:Ma solution pour l'instant est de proposer l'adresse http://site/curriculum_vitae plutôt que http://site/cv.


Par contre dans le cas où le script cv.php existe, Firefox me redirige vers http://site/cv/, il ajoute un /, pas IE. Firefox effectue bien la relocation mais la page n'est pas correctement affichée car il croit que le répertoire courant est cv/ ! ça n'est pas le cas de IE qui effectue bien la relocation. De même aucun problème avec Mozilla.

Donc j'en déduis qu'il s'agit d'un "bug" de Firefox !

goa103
WRInaute discret
WRInaute discret
 
Messages: 78
Inscription: Jeu Mai 15, 2003 9:49

Message le Mar Déc 05, 2006 12:21

J'ai finalement trouvé la solution à mon problème. Tout d'abord j'ai renommé mon script cv.php en curriculum_vitae.php afin que le navigateur ou le serveur ne s'emmêle pas les pinceaux. Et j'utilise le fichier .htaccess suivant :

RewriteEngine on
RewriteRule ^cv$ /curriculum_vitae.php [L]


L'erreur venait aussi du /, à ne pas oublier ! Merci aux autres messages d'en avoir parlé. Par contre ça ne fonctionne pas si j'indique « ^cv/$ » car le serveur croit que le chemin de base est cv/. C'est un peu normal je trouve. De même si je renomme le script en cv.php, Firefox s'emmêle les pinceaux. Enfin le technicien OVH a persisté dans ses réponses et n'a pas arrêté de me parler de complétion des adresses au niveau des navigateurs. Je ne vois vraiment pas comment IE, Firefox et Mozilla pourrait savoir qu'il faut suffixer tous les ^*$ en $.php ! Enfin... Sinon très important, j'ai aussi vidé le cache de mon navigateur, Firefox, pour que la màj du .htaccess soit prise en compte ! Très important ! Donc ça ne venait pas du tout du serveur.

Merci à tous pour votre aide et j'espère que mon périple évitera à d'autres de perdre leur temps sur un problème aussi simple.


Formation recommandée sur ce thème :

Formation URL Rewriting et sites dynamiques : apprenez comment mettre en place la réécriture d'URL, comment optimiser vos URL et profiter de vos pages dynamiques pour booster votre référencement. Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités