Quick links: Content - sections - sub sections
EN FR
Quick Search Advanced search
 
Page

  [Opened] [résolu] gestion des Urls

Posted by foxmask on 08/25/2008 18:22

Bonjour,

je viens de parcourir ce thread sans trouver de solution.

mon but etant d'arriver à avoir http://localhost/modulename/actionname/parm1

Donc voici ce qui me chagrine.

J'ai 2 modules :

  • news
  • maps

Chacun parfaitement accessible avec les urls "simple" exemple : http://localhost:81/index.php?module=maps&action=index

http://localhost:81/index.php?module=news&action=default:index

là où cela se gâte s'est quand je tente d'appliquer cette configuration

cas 1 :

 [urlengine]
 engine        = simple
 enableParser = off
 multiview = off
 basePath = "/"

en ajoutant dans le .htaccess du rep www :

 <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php/$1 [L,QSA]
 </IfModule>

mais cette fois ci, un accès au module maps comme ceci :

http://localhost:81/maps/index

me renvoi toujours à la page d'index des news :-(

cas 2 :

si j'ôte le paragraphe rewrite du fichier .htaccess et met

 [urlengine]
 engine        = significant
 enableParser = off
 multiview = off
 basePath = "/"

(que enableParser soit a on ou off provoque le meme comportement)

alors http://localhost:81/maps/index me renvoi toujours sur la page des news (aussi)

avec le parser à on je ne peux plus acceder à http://localhost:81/?action=default:news_add => retour à l'index des news

si je laisse à off j'accede à mon formulaire d'ajout.

Enfin mon fichier urls.xml contient ceci pour ne pas avoir à trop me casser la tete sur toutes les combinaisons d'urls ;)

  <urls xmlns="http://jelix.org/ns/urls/1.0">
	<classicentrypoint name="index" default="true">
		<url module="news" noentrypoint="true"/>
	</classicentrypoint>

    <classicentrypoint name="news" noentrypoint="true">
        <url module="news" />
    </classicentrypoint>
		
    <classicentrypoint name="maps" noentrypoint="true">
        <url module="maps"/>
    </classicentrypoint>
  </urls>

merci pour vos eclaircissements.

cdt.


@GitHub - Forum HaveFnuBB! powered by Jelix - Le Booster Jelix !

  [Opened] Re: gestion des Urls

Reply #1 Posted by laurentj on 08/26/2008 10:01

Salut

dans ton cas 1, tu n'as pas activé le moteur significant, ou tes rêgles de rewrite ne réécrivent pas l'url, donc je ne vois pas quoi, dans apache ou dans jelix, va pouvoir traduire http://localhost:81/maps/index en http://localhost:81/index.php?module=map&action=index . Donc le résultat obtenu est "normal".

dans le cas 2, pareil, tu mélanges tout. enableParser doit indiquer si l'url est parsé par jelix (on) ou par un truc externe comme le module rewrite d'apache (off). Quand tu met off, il faut que tu écrives toutes les rêgles rewrite pour chaque action, de manière à ce que jelix au final reçoive une url "simple", avec un paramètre module, action etc. Ce n'est à priori pas le cas dans tes 2 cas, donc bien entendu, il faut que tu le laisse à on.

si tu indiques l'engine "significant", il faut que tu remplisse le fichier urls.xml. Mais là, dans ton fichier urls.xml, null part l'url maps/index n'est déclarée, donc normal que ça ne te renvoi rien du tout.

dans ton fichier urls.xml, tu sembles avoir déclaré deux points d'entrée supplémentaire, news.php et maps.php. Tu as vraiment ces deux points d'entrées au moins ?

  [Opened] Re: gestion des Urls

Reply #2 Posted by laurentj on 08/26/2008 10:50

Quel est le plus simple et + maintenable ?

le seul moyen c'est d'utiliser le moteur significant avec son fichier urls.xml

il me semblait qu'avec les rewrite rules que vous enumérez dans la doc on arrivait au but plus rapidement, non ?

non, l'exemple donné avec les rules rewrite, c'est juste pour supprimer le index dans l'url, c'est tout (donc on a une url http://localhost/MONMODULE/MONACTION, et les règles transforme ça en http://localhost/index.php/MONMODULE/MONACTION pour que apache sache qu'il faut executer le index.php)

  [Opened] Re: gestion des Urls

Reply #3 Posted by laurentj on 08/26/2008 12:58

Je viens d'intégrer un nouveau moteur d'urls dans la version de dev de Jelix 1.1, /articles/fr/manuel-1.1/urls/basic_signi(..), qui permet de prendre en charge ce type d'urls, ce qui évite une configuration fastidieuse avec le moteur significant, mais est moins souple évidement.

  [Opened] Re: gestion des Urls

Reply #4 Posted by foxmask on 09/01/2008 15:28

je reviens sur le sujet pour dire que l'engine basic_significant marche impec ainsi de significant.

par contre on ne peut pas se passer de index.php (l'netrypoint) dans l'url si j'ai bien suivi.


@GitHub - Forum HaveFnuBB! powered by Jelix - Le Booster Jelix !

 
Page
  1. Re: gestion des Urls