Redirection RewriteRule et SPIP

HTML5, CSS3, Javascript, support des mobiles... Que penser de votre site ? Vous manquez d'informations pour la construction d'un site qui puisse s'afficher correctement partout ? C'est un problème simple, un peu complexe ? Venez ici !
Ezor

Redirection RewriteRule et SPIP

Message par Ezor »

Serait-il indiscret de savoir le contenu de votre htaccess (http://www.geckozone.org) qui permet la redirection à la volée des url de type "rubriques/1-marubrique/" en "rubrique.php3?id_rubrique=1" ?

J'ai eu beau lire différents sites qui explique les RewriteRule, je m'emmelle les pinceaux et je n'arrive pas à obtenir ce résultat.

Dans tout les cas, bravo pour ce site et ce forum que je découvre avec plaisir depuis quelques jours.
ClémentD
Lézard à collerette
Messages : 330
Inscription : 21 déc. 2003, 12:40

Message par ClémentD »

Une petit guide sur les rewrite est diponible dans le manuel de SPIP, http://www.spip.net/fr_article765.html .

Mais en effet il semble que ce ne sont pas lesmême règles que celles utilisées ici.
Ezor

Message par Ezor »

Effectivement, c'est celle que j'utilise actuellement et par un soucis de propreté, j'aurais désiré mettre en place le même type de redirection que le site geckozone!
ClémentD
Lézard à collerette
Messages : 330
Inscription : 21 déc. 2003, 12:40

Message par ClémentD »

T'as plus qu'a attendre que les admins passent par ici alors ;)
Ezor
Arias
Messages : 6
Inscription : 28 déc. 2004, 15:37

Message par Ezor »

Et bien je vais attendre :wink:
Benoit
Administrateur
Messages : 4894
Inscription : 19 juil. 2003, 10:59

Message par Benoit »

C'est Olivier (olab) qui s'est occupé de ça, et il est en vacances pour l'instant.

Tout ce que je peux dire c'est que, au cas où vous ne l'aviez pas vu, c'est basé sur le début (rubriques/1) et qu'après on peut écrire à peu près n'importe quoi, ça sera bien redirigé à cause du 1 qui renverra vers id_rubrique=1.
Ezor
Arias
Messages : 6
Inscription : 28 déc. 2004, 15:37

Message par Ezor »

Oui j'avais vu d'ailleur, j'avais déjà reproduit cette construction d'url en modifiant le fichier "inc-url-propre.php3", mais quand j'ai voulu faire les redirections par le biais du fichier ".htaccess", et bien là ce fut le drame .... :shock:
olab
Varan
Messages : 1254
Inscription : 30 juil. 2003, 20:20

Message par olab »

Coucou, de retour de vacances, je peux enfin te répondre :-)
Voici donc les règles du mod_rewrite :

Code : Tout sélectionner

# Corrections (notamment pour que les images passent)
RewriteRule ^(.*)/(IMG|squelettes|ecrire)/(.*)$ /$2/$3 [R=301,QSA,L]
RewriteRule ^(.*)/(spip_barre\.js|puce\.gif|puce_rtl\.gif)$ /$2 [R=301,QSA,L]

# Comme ces premieres regles contiennent des {articles,actualites} il faut les placer en premier
RewriteRule ^articles/xml/([0-9]*)(-(.*))?$		backend.php3?id_rubrique=$1 [QSA,L]
RewriteRule ^articles/atom/([0-9]*)(-(.*))?$		backend_atom.php3?id_rubrique=$1 [QSA,L]
RewriteRule ^articles/js/([0-9]*)(-(.*))?$		distrib_articles.php3?id_rubrique=$1 [QSA,L]
RewriteRule ^actualites/xml/([0-9]*)(-(.*))?$		backend-breves.php3?id_rubrique=$1 [QSA,L]
RewriteRule ^actualites/atom/([0-9]*)(-(.*))?$		backend-breves_atom.php3?id_rubrique=$1 [QSA,L]
RewriteRule ^actualites/js/([0-9]*)(-(.*))?$		distrib_breves.php3?id_rubrique=$1 [QSA,L]

RewriteRule ^articles/((19|20)[0-9]{2}/(0[1-9]|1[012])/(0[1-9]|[12][0-9]|3[01])/)?([0-9]+)(-(.*))?$	article.php3?id_article=$5 [QSA,L]
RewriteRule ^actualites/((19|20)[0-9]{2}/(0[1-9]|1[012])/(0[1-9]|[12][0-9]|3[01])/)?([0-9]+)(-(.*))?$	breve.php3?id_breve=$5 [QSA,L]
RewriteRule ^rubriques/([0-9]+)(-[^/]*)?/$								rubrique.php3?id_rubrique=$1 [QSA,L]
RewriteRule ^auteurs/([0-9]+)(-(.*))?$			auteur.php3?id_auteur=$1 [QSA,L]
RewriteRule ^auteurs/$					auteur.php3 [QSA,L]
RewriteRule ^contributeurs/([0-9]+)(-(.*))?$		contributeur.php3?id_auteur=$1 [QSA,L]
RewriteRule ^contributeurs/$				contributeur.php3 [QSA,L]
RewriteRule ^forums/([0-9]+)(-(.*))?$			forum.php3?id_forum=$1 [QSA,L]
RewriteRule ^plan/$					plan.php3 [QSA,L]
RewriteRule ^syndication/$				syndication.php3 [QSA,L]
RewriteRule ^js/([0-9]*)(-(.*))?$			distrib.php3?id_rubrique=$1 [QSA,L]
RewriteRule ^xml/([0-9]*)(-(.*))?$			backend_tout.php3?id_rubrique=$1 [QSA,L]
RewriteRule ^atom/([0-9]*)(-(.*))?$			backend_tout_atom.php3?id_rubrique=$1 [QSA,L]
RewriteRule ^rubriques/$				plan.php3 [QSA,L]
RewriteRule ^articles/$					site_articles.php3 [QSA,L]
RewriteRule ^actualites/$				site_breves.php3 [QSA,L]
RewriteRule ^rubriques/([0-9]+)(-[^/]*)?/articles/$	rubrique_articles.php3?id_rubrique=$1 [QSA,L]
RewriteRule ^rubriques/([0-9]+)(-[^/]*)?/actualites/$	rubrique_breves.php3?id_rubrique=$1 [QSA,L]
RewriteRule ^profils/([0-9]*)(-(.*))?$			profil.php3?id_mot=$1 [QSA,L]
RewriteRule ^apropos/$					apropos.php3 [QSA,L]
RewriteRule ^coingeckozone/$				coin_geckozone.php3 [QSA,L]
RewriteRule ^coingeckozone/ressources/(.*)$		ressources/$1 [QSA,L]
RewriteRule ^telechargement/$				telechargement.php3 [QSA,L]
RewriteRule ^aide/$					aide.php3 [QSA,L]
Bien sûr il faut que la génération des urls via le inc-urls soit correcte, sinon...

Edit: j'ai rajouté les exceptions au début ;-)
Dernière modification par olab le 10 janv. 2005, 16:56, modifié 2 fois.
Ezor
Arias
Messages : 6
Inscription : 28 déc. 2004, 15:37

Message par Ezor »

Merci énormément !
olab
Varan
Messages : 1254
Inscription : 30 juil. 2003, 20:20

Message par olab »

Good luck ;-)
Ezor
Arias
Messages : 6
Inscription : 28 déc. 2004, 15:37

Message par Ezor »

Alors pour ce qui est de générer des urls correctes via le inc-url, ca va j'ai réussi. Donc là je test avec un article, impec, il me redirige vers le bon article.

Un seul problème, l'adresse étant:

Code : Tout sélectionner

http://monsite/articles/2005/01/07/419-Blabla
Je n'ai nis le CSS ni les images qui apparaissent.

Normal, d'après l'adresse je suis dans le répertoire articles/2005/....

Donc quand je veux afficher l'image: "images/monimage.jpg" il va chercher dans /articles/2005/01/07/419-Blabla/images/monimages.jpg", du moins je le suppose...

Il faudrait donc que je mette "http://monsite/css/moncss.css" et la même syntaxe pour les images dans les SRC.

Premièrement ca ne m'arrange pas trop et deuxièmement j'ai vu que ce n'était pas le cas sur le site de geckozone.

Il y a une astuce ?

PS: je suis sur que c'est très con, c'est la fin de journée....
olab
Varan
Messages : 1254
Inscription : 30 juil. 2003, 20:20

Message par olab »

Tututu, pas la peine de te rabaisser, c'est moi qui ne t'ai pas tout donné ;-)
Mets ça au debut de l'htaccess et ça devrait aller :P

Code : Tout sélectionner

# Corrections (notamment pour que les images passent)
RewriteRule ^(.*)/(IMG|squelettes|ecrire)/(.*)$ /$2/$3 [R=301,QSA,L]
RewriteRule ^(.*)/(spip_barre\.js|puce\.gif|puce_rtl\.gif)$ /$2 [R=301,QSA,L]
Ezor
Arias
Messages : 6
Inscription : 28 déc. 2004, 15:37

Message par Ezor »

Merci, au passage je viens de voir qu'en mettant...

Code : Tout sélectionner

<img src="/img/pouet.gif" />
...au lieu de...

Code : Tout sélectionner

<img src="img/pouet.gif" />
...ca resolvait le problème!
olab
Varan
Messages : 1254
Inscription : 30 juil. 2003, 20:20

Message par olab »

oui forcément :-)

et où c'est-y qu'on peut voir tout ça ? ;-)
Ezor
Arias
Messages : 6
Inscription : 28 déc. 2004, 15:37

Message par Ezor »

Ah ... j'aime partager mon travail d'habitude, mais là je suis désolé, c'est l'intranet de mon entreprise ;)

Edit: mais je compte me mettre à faire un site perso prochainement et je reprendrais toutes les bonnes idées que j'ai pu voir sur geckozone :wink:
Dernière modification par Ezor le 10 janv. 2005, 17:12, modifié 1 fois.
Répondre

Qui est en ligne ?

Utilisateurs parcourant ce forum : Semrush [Bot] et 2 invités