weddy57 Posté 25 Avril 2008 Posté 25 Avril 2008 Bonjour, J'ai découvert l'URL rewriting hier et ca marche a 90% sur mon site de test sous EasyPHP. J'ai deux types d'URL a interpreter : ht*p://localhost/monsite/index.php?module=page_nom devient ht*p://localhost/monsite/page_nom.html Là ca marche, par contre ht*p://localhost/monsite/index.php?module=news_details&page_name=page_nom ne devient pas ht*p://localhost/monsite/page_nom.html Voici mon code : Options +FollowSymlinksRewriteEngine onRewriteRule /([A-Z0-9a-z_-]+)\.html /monsite/index.php?module=$1RewriteRule /([A-Z0-9a-z_-]+)\.html /monsite/index.php?module=news_details&page_name=$1 [L] j'ai essayé avec des [R=301] mais les deux RewriteRule ne marchent pas ensemble, indépendemment oui. Par exemple quand je place un [R=301] sur mon premier rewrite, il me renvoie : /monsite/index.php?module=nom_de_la_news alors que ca devrait être /monsite/index.php?module=news_details&page_name=nom_de_la_news C'est là que ca coince ;-) Désolé de mon ignorance, je ne suis que designer. Merci de votre aide en tout cas!
Jeanluc Posté 25 Avril 2008 Posté 25 Avril 2008 Bonjour, Tu ne peux pas "faire confiance" au système pour qu'il reconnaisse de lui même que, dans certains cas, localhost/monsite/page_nom.html doit être converti d'une certaine manière et autrement dans d'autres cas. Le format que tu choisis pour tes URL doit être sans ambiguïté pour le système, sinon il prendra la première règle qui s'applique. De plus, tu ne peux pas mettre deux règles sur la même ligne. Va voir les pages de documentation de ce site: une vraie mine d'or pour démarrer en réécriture d'URL ! Jean-Luc
weddy57 Posté 25 Avril 2008 Auteur Posté 25 Avril 2008 Merci de ta réponse, le monde de l'URL rewriting est semé d'embûches pour un neuneu comme moi Donc, si je suis ton raisonnement, il sera possible de faire les choses suivantes dans le meme htaccess? localhost/monsite/page_nom.html pour localhost/monsite/index.php?module=page_nom et localhost/monsite/news/page_nom.html pour localhost/monsite/index.php?module=news&detail=page_nom Merci encore
Dan Posté 25 Avril 2008 Posté 25 Avril 2008 Un commentaire sur ta seconde règle toutefois... Les répertoires apparents (l'un virtuellement dans /news/ et l'autre dans / ) étant différents, il faudra soigner tes appels aux fichiers include, javascripts, css, images, etc en : - soit renseignant leur chemin complet - soit utilisant la balise <base href=...> dans le fichier index.php Sinon, le navigateur va y perdre son latin.
weddy57 Posté 28 Avril 2008 Auteur Posté 28 Avril 2008 (modifié) Merci de ta réponse Dan Mais bon, après presque trois jours à m'arracher les cheveux, ca ne marche pas. Donc les URL du site seront réécrites et pas les URL des news. Je laisse tomber parce que pas le temps. Je suis trop nul Quelqu'un pourrait-il me dire si l'URL suivante sera bien indexée par Google? h*tp://www.monsite.com/index.php?module=news_details&page_name=date_nomdelanews_sujet Merci à tous de votre aide en tout cas! Modifié 28 Avril 2008 par weddy57
Jeanluc Posté 28 Avril 2008 Posté 28 Avril 2008 Faut pas se décourager si vite. Tu as essayé comme ceci ? Options +FollowSymlinksRewriteEngine onRewriteRule /news-([A-Z0-9a-z_-]+)\.html /monsite/index.php?module=news_details&page_name=$1 [L]RewriteRule /([A-Z0-9a-z_-]+)\.html /monsite/index.php?module=$1 [L] N'oublie pas que l'ordre des lignes est important. Jean-Luc
weddy57 Posté 29 Avril 2008 Auteur Posté 29 Avril 2008 Ca marche.... En regardant de plus près, c'est simple comme bonjour... J'avais abandonné le dossier virtuel pour un nom de fichier html différent mais pas de facon aussi simple et efficace. Merci énormément de ton aide et d'avoir pris le temps de rédiger cette réécriture d'habitude j'arrive toujours à me débrouiller tout seul, mais là j'ai calé. Merci merci merci!!!!
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant