RewriteEngine Completement fou

  • Auteur de la discussion Auteur de la discussion jst
  • Date de début Date de début
Nouveau WRInaute
Bonjour,

Je vais tenter de faire court et simple mais c'est pas gangné...

Je tente de mettre en place une URLRewriting toute simple sur un site témoin (en local pour l'instant: wampserver2), via .htaccess

DocumentRoot "C:/wamp/www"
Mon site: "C:/wamp/www/sitetemoin.com/
Le site fonction sous une structure MVC de base, tout est routé en PHP vers index.php qui attend deux variables:
index.php?module=qqchose&action=qqchose ...sinon il inclue une homepage.
I: Je tente de ré écrire les urls de menu qui pointent vers 2 pages: module "com" fichier "about", et module "com" fichier "contact", mes urls de base était donc 'index?php?module=com&action=about' et 'index.php?module=com&action='contact'.
Dans .htaccess:
Options +FollowSymLinks
RewriteEngine on
RewriteRule ^([a-zA-Z0-9]+)/([a-zA-Z0-9]+)$ index.php?module=$1&action=$2
Mes liens ré écrits:
com/about
com/contact
Le problème est que, depuis la page d'accueil tout se passe bien, au survol mes liens s'affichent comme suit:
http://localhost/sitetemoin.com/com/about
http://localhost/sitetemoi.com/com/contact
Mais je ne peux pas passer de l'une à l'autre. Mon navigateur affiches désormais mes liens au survol comme suit:
http://localhost/sitetemoin/com/com/contact
http://localhost/sitetemoin.com/com/com/about
et pour la page d'accueil:
http://localhost/sitetemoin.com/com
Encore plus fort:
Un objet galerie d'images est inclus dans "modules/galleries/gallery.php", il est instancié avec une variable crntSec (section courante) reçue en paramètre de la page ('index.php?module=galleries&action=gallery&crntSec=UnderWater'), qui lui sert à déterminer le sous-dossier à explorer un niveau en dessous d'un chemein définit dans un fichier de config:
define('GALLERIES_PATH', 'images/galleries');
Les urls des mes galeries créées dynamiquement deviennent du style:' galleries/gallery/UnderWater'.
Dans .htaccess:
Je rajoute RewriteRule ^([a-z0-9A-Z]+)/([a-z0-9A-Z]+)/([a-z0-9A-Z]+)$ index.php?module=$1&action=$2&crntSec=$3 [L]
Et là plus rien, mon objet voit bien mes paths mais plus rien ne s'affiche.
Mes liens revoient pourtant bien à 'http://localhost/sitetemoin.com/galleries/gallery/UnderWater'

Conclusion en deux mots:

AU SECOURS !

Si quelqu'un pouvais m'aider ...
Merci d'avance
Sébastien
 
WRInaute accro
utilise des virtualhost sur ton wamp (en n'oubliant pas de paramétrer tes ndd dans ton fichier host), c'est bien mieux pour avoir le même comportement en local qu'en prod.
perso, j'utilise ww.example.com en local et www.example.com en prod.
Ca me permet comme ça, juste en supprimant un "w" du début du ndd de me retrouver sur la page en local et donc de vérifier un une amélioration ou la résolution d'un problème pour une page donnée
 
Nouveau WRInaute
Leonick a dit:
utilise des virtualhost sur ton wamp (en n'oubliant pas de paramétrer tes ndd dans ton fichier host), c'est bien mieux pour avoir le même comportement en local qu'en prod.
perso, j'utilise ww.example.com en local et http://www.example.com en prod.
Ca me permet comme ça, juste en supprimant un "w" du début du ndd de me retrouver sur la page en local et donc de vérifier un une amélioration ou la résolution d'un problème pour une page donnée
Salut !
Bon je sèche vraiment là...
Je viens de refaire des tests sous hôte virtuel et c'est strictement la même... Au premier click l'url est bien redirrigée, mais ensuite mes lien sont tous transformés avec un doublement de ma première variable, Exemple:
.htaccess
Code:
Options +FollowSymLinks
RewriteEngine on
RewriteRule ^([a-zA-Z]+)/([a-zA-Z]+)\.html$ index.php?module=$1&action=$2 [L]
Mon menu :
Code:
<li><a href='galleries/gallery.html'>ScubaDivingGallery</a></li>
Après le premier click, mon lien devient:
Code:
http://nnd/galleries/galleries/gallery.html

De plus, je viens de vérifier que cela ne vient pas de mon MVC:
Petit test de redirection
1 fichier test.html contenant un lien ver test/tag1/tag2.html
1 fichier test.php contenant un lien vers test.tag3/tag4.html et un système de récupération de variables (pour vérifier)
1 fichier .htaccess la règle suivante:
Code:
RewriteRule ^test/([a-zA-Z0-9]+)/([a-zA-Z0-9]+)\.html test.php?t1=$1&t2=$2 [L]
Premier click tout va bien, mais lors du click sur le lien du fichier php mon url est devenu
Code:
http://urlrewriting/test/tag1/test/tag3/tag4.html
Et j'hérite bien sûr d'un gros 404

Quelqu'un a-t-il la moindre idée de ce qui merde là ?

Merci d'avance
 
Nouveau WRInaute
Ok, il semble que j'ai un problème avec les slashes, si je les remplace par des tirets tout baigne. Maintenant, si quelqu'un sait comment je peux faire pour utiliser les slashes, ce serait quand même moins contraignant....
 
Discussions similaires
Haut