Aller au contenu

URL Rewriting et Modx


Sujets conseillés

Bonjour,

apres moult recherche sur internet, parcours de tutoriaux etc, rien à faire je n'arrive pas à faire ce que je veux!

L'URL Rewriting fonctionne dans sa version fournie avec Modx :

Options +FollowSymlinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [QSA,L]

donc au lieu d'avoir -http://www.monsite.fr/index.php?id=1

J'ai bien -http://www.monsite.fr/accueil.html

J'ai remarqué que le littéral .html n'étais pas présent dans le .htaccess, donc je suppose que c'est le CMS qui exécute le code nécessaire et rajoute les options puisque dans l'admin on peut créer les alias que l'on veut, le littéral désiré, et les séparateur pour les répertoires virtuels.

Grâce à ces réglages je peux avoir des url avec la forme:

-http://www.monsite.com/fr/accueil.html ou -http://www.monsite.com/gb/accueil.html

Maintenant lorsque j'utilise un formulaire j'obtiens l'URL suivante:

-http://www.monsite.com/fr/accueil.html?var=choix

et j'aimerais obtenir une URL soit -http://www.monsite.com/fr/choix/accueil.html ou -http://www.monsite.com/fr/accueil-choix.html

J'ai essayé d'appliquer un maximum d'exemple et de règles dans les tutos et forums parcourus mais rien à faire.

Quelqu'un aurait-il une piste pour m'aiguiller?

Ou va t'il falloir me plonger dans le code du CMS même pour modifier le comportement du fichier qui s'occupe de réécrire les URL?

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

Pour t'aider, il faudrait nous en dire un peu plus sur ton formulaire.

Utilises tu eform?

A quoi sert ton formulaire? rediriger vers une autre page?

Aour

Lien vers le commentaire
Partager sur d’autres sites

Utilises tu eform?

A quoi sert ton formulaire? rediriger vers une autre page?

Aour

Bonjour,

merci de ta réponse.

Je n'utilise pas eform (est-il indispensable de l'utiliser?).

Mon formulaire permet de saisir une marque, et, à la validation, redirige vers une autre page effectivement.

donc ça donne:

www.monsite.fr/

comme page d'accueil avec le formulaire, puis à la validation:

www.monsite.fr/fr/accueil.html?marque=variable

ou

www.monsite.fr/gb/welcome.html?marque=variable

si la langue selectionnée est l'anglais.

Je ne veux pas le travail clée en main, j'ai tenté d'utiliser SEO Strict URL en plug in sans succès, peut être avec une TV ou eform mais j'avoue ne pas les utiliser du tout...

Lien vers le commentaire
Partager sur d’autres sites

Bon je continue de chercher, et d'essayer diverse manipulation dans le fichier .htaccess

J'ai essayé une regle qui réecrit l'URL

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{QUERY_STRING} marque=([A-Z]+)
RewriteRule ^(.*)$ index.php?q=$1%1 [R=301,L,QSA]

et l'URL qu'il me donne est :

localhost/E:/DIR/index.php?q=fr/accueil.htmlVARIABLE&marque=VARIABLE

si je fait:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{QUERY_STRING} marque=([A-Z]+)
RewriteRule ^(.*)$ index.php?q=$1&marque=%1 [R=301,L]

j'obtient l'URL:

localhost/E:/DIR/index.php?q=fr/accueil.html&marque=VARIABLE

Les 2 générant une erreur 403

au moins il réecrit mais ça reste tres faux et pas du tout ce que j'essaie d'obtenir comme resultat :-/

Modifié par lossendae
Lien vers le commentaire
Partager sur d’autres sites

Salut,

à défaut d'utiliser un document pour chaque étape, tu ne pourras pas obtenir le résultat escompté.

Et même dans ce cas tu ne pourras créer un alias sur la base des choix de l'internaute.

:-)

Lien vers le commentaire
Partager sur d’autres sites

Salut,

à défaut d'utiliser un document pour chaque étape, tu ne pourras pas obtenir le résultat escompté.

Et même dans ce cas tu ne pourras créer un alias sur la base des choix de l'internaute.

:-)

Bonjour,

je ne comprend pas vraiment ce que tu veux dire...

La page d'accueil du site comprend juste un formulaire dans lequel l'internaute choisi la marque désirée.

Une fois choisie, il accede à la page d'accueil personalisé pour sa marque.

je ne vois pas ou la necessité de mettre plustieurs fois le formulaire ou alors j'ai vraiment rien compris de ce que tu as voulu m'expliquer...

Je penche plutot pour le second choix :-p

Lien vers le commentaire
Partager sur d’autres sites

Grâce à ces réglages je peux avoir des url avec la forme:

-http://www.monsite.com/fr/accueil.html ou -http://www.monsite.com/gb/accueil.html

Maintenant lorsque j'utilise un formulaire j'obtiens l'URL suivante:

-http://www.monsite.com/fr/accueil.html?var=choix

et j'aimerais obtenir une URL soit -http://www.monsite.com/fr/choix/accueil.html ou -http://www.monsite.com/fr/accueil-choix.html

Je vais tacher d'être plus clair :-)

ta problématique:

Sur la page d'accueil tu as un formulaire.

L'internaute sélectionne une marque.

Une fois la sélection effectuée, l'internaute est dirigée vers une page(ou bien la même page) contenant les infos liées à sa sélection.

Contexte:

Avec MODx, chaque doc a un alias (unique ou non).

Cet alias est figé, on ne peut le modifier à la volée.

La combinaison alias<=>id permet à modx de servir la bonne page.

Pour ce que tu veux faire, tu es obligé de rediriger après sélection vers une page dont l'alias est accueil-choix

C'est le moyen le plus simple.

:-)

Lien vers le commentaire
Partager sur d’autres sites

Je vais tacher d'être plus clair :-)

ta problématique:

Sur la page d'accueil tu as un formulaire.

L'internaute sélectionne une marque.

Une fois la sélection effectuée, l'internaute est dirigée vers une page(ou bien la même page) contenant les infos liées à sa sélection.

Contexte:

Avec MODx, chaque doc a un alias (unique ou non).

Cet alias est figé, on ne peut le modifier à la volée.

La combinaison alias<=>id permet à modx de servir la bonne page.

Pour ce que tu veux faire, tu es obligé de rediriger après sélection vers une page dont l'alias est accueil-choix

C'est le moyen le plus simple.

:-)

Arf! je crois saisir, mais j'ai aussi manqué de précision :-p

Schematisons:

www.monsite.fr --> Contient la page d'accueil générale et le formulaire qui envoie systématiquement à la validation d'une marque vers une page d'accueil:

www.monsite.fr/fr/accueil.html

donc index.php?q=fr/accueil.html

Disons qu'il y a 2 marque VAR1 et VAR2

apres leurs saisie obligatoire sur la page d'accueil (www.monsite.fr) ils sont redirigé vers une seule page necessitant la variable marque www.accueil.fr/fr/accueuil.html?marque=VAR1 ou www.accueil.fr/fr/accueuil.html?marque=VAR2

Ce que tu me dis c'est qu'il faudrait a nouveau copié les pages sur chaques marques pour pouvoir obtenir une page avec un alias qui s'appelerait accueil-var1 et une avec accueil-var2 et ainsi de suite?

Or c'est la même page, j'ai juste besoin de récupérer la variable et la ré afficher dans la page, ou de la lier a d'autre informations via une base de donnée mais sans les dédoubler (Vu la quantité de marque de toute façon cela ne va pas être possible).

Je pourrai le faire passer en session, mais pour le referencement, il est préferable que la marque apparaisse dans l'URL (l'internaute n'aura accès à la page accueil.html que si la marque est renseignée).

D'ou l'envie (plus que la nécessité) que l'URL soit réecrite plutot comme www.monsite.fr/VAR1/fr/acceuil.html ou www.monsite.fr/fr/accueil-var1.html en place de www.monsite.fr/fr/accueil.html?marque=var1

J'ai vu sur d'autre topic que cela etait possible avec le parametre RewriteCond %QUERY_STRING, mais peut être pas avec Modx...

Lien vers le commentaire
Partager sur d’autres sites

Je vais tacher d'être plus clair :-)

ta problématique:

Sur la page d'accueil tu as un formulaire.

L'internaute sélectionne une marque.

Une fois la sélection effectuée, l'internaute est dirigée vers une page(ou bien la même page) contenant les infos liées à sa sélection.

Contexte:

Avec MODx, chaque doc a un alias (unique ou non).

Cet alias est figé, on ne peut le modifier à la volée.

La combinaison alias<=>id permet à modx de servir la bonne page.

Pour ce que tu veux faire, tu es obligé de rediriger après sélection vers une page dont l'alias est accueil-choix

C'est le moyen le plus simple.

:-)

Je sens que je vais te faire repeter, je viens de relire ton post et tu parle bien de rediriger l'internaute. Donc je suppose que c'est possible que si l'URL Rewriting n'est pas activé ou en utilisant SEO Strict URL ?

arf, je m'embrouille, ça tourne :-/

Lien vers le commentaire
Partager sur d’autres sites

J'ai posté le même sujet sur Modxcms, dans le forum français et dans le forum anglais et je n'ai obtenu qu'une seule réponse de quelqu'un qui cherchait a faire la même chose que moi.

Bon, je sais , les gens bossent et n'ont absolument aucune obligation de me répondre, mais ton nom ou celui d'heliotrope reviennent souvent dans les aides pour Modx sur le forums là-bas, et pourtant vous m'avez répondu ici même.

M'en vais quand même retenter ma chance, sait on jamais :)

**EDIT Administrateur (TheRec)** Inutile de citer le message précédent en entier lorsqu'il figure juste au-dessus. J'ai édité votre message dans ce sens. Merci de votre compréhension.

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...