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

  [Opened] RewriteRule / Significant / Plusieurs Entrypoints

Posted by foxmask on 01/07/2009 09:47

Bonjour,

Avec l'apparition du module master_module, le besoin de créer un second entry point se fait sentir.

Quand j'utilise le moteur significant et le mod_rewrite, je dois pondre une regexp dans mon fichier .htaccess pour que mes 2 entrypoints soient traités distinctement.

Mais je ne m'en sors pas.

pour l'entrypoint par defaut j'ai mon .htaccess qui fait cela

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

et ca marche impec

mais dès que je veux mixer 2 entrypoints (index et mgr)

 RewriteRule ^(index|mgr)\.php(.*)$ $1.php/$2 [L,QSA]

ou

 RewriteRule ^([index|dlmgr]\.php)(.*)$ $1/$2 [L,QSA]

plus aucune url n'est reconnue...

une suggestion ?

cdt.


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

  [Opened] Re: RewriteRule / Significant / Plusieurs Entrypoints

Reply #1 Posted by manooweb on 01/07/2009 10:18

Salut

as-tu un exemple de ce que tu veux faire exactement ?

l'url non rewritée mais significative au sens jelix.

La mise entre crochet veut dire "n'importe quel caractère de la liste" donc pour le seconde c'est normal que çà ne marche pas.

La première expression me semble pourtant juste tu n'as pas le multiview actif (suppression de l'extension php) ?


Manu

  [Opened] Re: RewriteRule / Significant / Plusieurs Entrypoints

Reply #2 Posted by laurentj on 01/07/2009 11:13

Salut,

que tu "supprime" le index.php pour les urls dediés à index.php, pourquoi pas. Mais pour les autres points d'entrée, tu pourrais les renommer de manière à avoir une url qui te convienne, et donc ne pas avoir à les supprimer. Tout est possible dans la configuration de urls.xml.

ex, renomme ton dlmgr.php en downloadmanager.php par exemple, et configure urls.xml pour que les urls générés pour le download manager puissent avoir la tete /downloadmanager/foo/bar (faut activer le pathinfo et le multiview dans apache.

  [Opened] Re: RewriteRule / Significant / Plusieurs Entrypoints

Reply #3 Posted by foxmask on 01/07/2009 12:00

@Laurent : je vais tester cela, j'etais sur le forum pendant 1h sans avoir soumis ; jai pas vu ta reponse plus tot ;))


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

  [Opened] Re: RewriteRule / Significant / Plusieurs Entrypoints

Reply #4 Posted by manooweb on 01/07/2009 18:18

Bon j'ai pas réussi à faire quelque chose de probant sauf à faire comme çà

 RewriteRule ^mgr/(.*)$ monEntreeMgr.php/$2 [L,QSA]
 RewriteRule ^default/(.*)$ index.php/$2 [L,QSA]

Mais autant faire comme préconise Laurent, c'est à dire laisser dans index dans l'url et passer par le fichier xml pour les urls du deuxième point d'entrée.

Car lors de mes essais la deuxième règle me réécrivait la première. Bon test rapide sous wampMss aussi. Peut-être que sous mon Lamp, je vais faire un essai quand même.


Manu

  [Opened] Re: RewriteRule / Significant / Plusieurs Entrypoints

Reply #5 Posted by laurentj on 01/07/2009 22:55

@foxmask : là je ne comprend pas ce que tu fais. Tu as indiqué pour les deux points d'entrée noentrypoint="false". Ça veut dire que Jelix va générer les urls avec index ou mngr devant. Et donc tes rêgles de rewrite ne servent à rien.

Si dans apache tu as le multiview activé, tu peux très bien taper index/machin/pouet, et apache va le comprendre comme étant index.php/machin/pouet sans avoir de rêgle de rewrite.

Donc c'est

  • soit noentrypoint="true" + rêgles rewrite
  • soit noentrypoint="false" et pas de rêgles rewrite.

mais pas noentrypoint="false" + rêgles rewrite : dans ton cas c'est pas logique.

  [Opened] Re: RewriteRule / Significant / Plusieurs Entrypoints

Reply #6 Posted by laurentj on 01/08/2009 10:26

ouaip

Maintenant, avoir le mot "index" dans l'url, c'est pas top. Donc pour le point d'entrée index.php, tu peux mettre tes rêgles de réécritures (juste pour le index.php donc), et mettre noentrypoint="true" sur la balise classicentrypoint qui correspond. Et par contre, pour l'autre point d'entrée, laisse comme ça (mais tu peux quand même changer le nom, car dlmgr c'est pas très "significatif" ;-)

 
Page
  1. RewriteRule / Significant / Plusieurs Entrypoints