Clean URL + i18n = casse tête !!

Catégories:

Salut à tous !

Je viens de mettre mon site sous OVH, et après moultes efforts (notamment sur le .htaccess), j’ai réussi à activer la réécriture d’URL…

Seulement voila, j’utilise le module i18n (permettant de faire un site bilingue), et je pense que c’est ça qui empêche le tout de bien fonctionner.

En effet, quand je clique sur un lien j’obtiens une url du type http://www.domaine.com/fr/page , et les images de ma page ne s’affichent pas…

Par contre, quand j’enlève le «fr» de l’url, et que j’obtiens une adresse du type http://www.domaine.com/page, tout s’affiche.

Quelqu’un à une solution ?

#

Par dépit, j’ai carrément désactivé i18n (du moins temporairement), et mes url fonctionnent…

Maintenant, imaginons que la node «100» a pour alias «banana».
Comme faire pour que lorsqu’on clique sur le lien http://www.domaine.com/ ?q=node/100 , on obtienne http://www.domaine.com/banana dans la barre d’adresse ?

J’ai installé pathauto, mais apparemment, il ne permet pas cela…

#

Desole mais je n’ai pas d’experience avec i18n.

Par contre pour tes URLs, la question est d’ou vient ce lien http://www.domaine.com/ ?q=node/100 ? Si c’est un lien que tu a cree a la main avec un balise [a], dans ce cas je ne vois pas comment faire, par contre ce que tu peux faire est de creer tes liens avec la fonction l ex : l(«mon lien», «node/100») ainsi le lien se transformera automatiquement en fonction des alias que tu lui assigneras.

#

Merci Tostinni, c’est bien ce qu’il me semblait, les liens créés «en dur » avec la balise [a] ne sont pas transformables…

Merci aussi pour la fonction l, je ne connaissais pas !!

#

Hello,

L’inconvénient de cette solution est qu’elle t’oblige à passer le format d’entrée sur «PHP Code», ce qui n’est PAS une bonne idée (un utilisateur mal intentionné pourrait alors effacer toute la base d’un simple db_query).

Il existe un filtre http://drupal.org/project/pathfilter qui permet, une fois activé, d’écrire tes liens sous la forme :

<a href="internal:node/99">Texte du lien</a>

Le filtre remplacera le internal:XXX par un lien qui fonctionne bien (en utilisant l’alias s’il existe) au moment de l’affichage.

Vincent

Formations Drupal pour WEBMASTERS, DESIGNERS et DÉVELOPPEURS.

#

Merci Vincent pour ces infos…

Qu’est ce que tu entends par «cette solution» ? la fonction l ?

#

Ouep, j’avais evidemment oublie de preciser cette subtilite qui de toute maniere est clairement reservee a l’admin du site…

#

@Olivier.
Oui, je parlais de la fonction l(). C’est une fonction de l’API Drupal que tu ne peux utiliser qu’en PHP, en écrivant qqchose comme

<?php
echo l('Texte du lien', 'node/18');
?>

Vincent

Formations Drupal pour WEBMASTERS, DESIGNERS et DÉVELOPPEURS.

Syndiquer le contenu