Relocation vers un script et adresse de base

WRInaute discret
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.
 
WRInaute discret
OVH, .htaccess fantôme et guides mod_rewrite

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 :)
 
WRInaute discret
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.
 
WRInaute occasionnel
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:
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:
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 :) )
 
WRInaute discret
magic corp. a dit:
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.
 
WRInaute discret
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 :(
 
WRInaute discret
goa103 a dit:
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 !
 
WRInaute discret
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.
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut