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

  [Opened] jURL significant et réécriture d'urls

Posted by Mindiell on 02/27/2012 12:24

Hop !

Me revoilou avec quelques questions. Je tente d'utiliser le moteur significant et la réécriture d'url et j'ai réussi à faire que mes urls (utilisant jUrl bien entendu) me renvoit vers : http://127.0.0.1/faq

Mon fichier urls.xml contient ceci : <url pathinfo="/faq" module="main" action="default:faq" />

Je suis bien redirigé vers l'adresse /index.php/faq (car j'ai viré le point d'entrée, c'est moche :) ) Mais, le error.log de Jelix contient de drôles de choses :

2012-02-27 12:25:45	127.0.0.1	notice	2012-02-27 12:25:45	127.0.0.1	[8]	Undefined index: logged	D:\Documents\tbouchet\Mes Documents\personnel\lum\temp\lum\www\compiled\templates\modules\main\header_html_t.php	12
	/faq
array ( )

	0	template_074fd8a9785e190fd4f7ea0f6c621a3e()	D:\Documents\tbouchet\Mes Documents\personnel\lum\jelix\lib\jelix\tpl\jTpl.class.php : 278
	1	jTpl->fetch()	D:\Documents\tbouchet\Mes Documents\personnel\lum\jelix\lib\jelix\utils\jZone.class.php : 226
	2	jZone->_createContent()	D:\Documents\tbouchet\Mes Documents\personnel\lum\jelix\lib\jelix\utils\jZone.class.php : 196
	3	jZone->getContent()	D:\Documents\tbouchet\Mes Documents\personnel\lum\jelix\lib\jelix\utils\jZone.class.php : 266
	4	jZone::_callZone()	D:\Documents\tbouchet\Mes Documents\personnel\lum\jelix\lib\jelix\utils\jZone.class.php : 95
	5	jZone::get()	D:\Documents\tbouchet\Mes Documents\personnel\lum\jelix\lib\jelix\tpl\jTpl.class.php : 125
	6	jTpl->assignZone()	D:\Documents\tbouchet\Mes Documents\personnel\lum\responses\myHtmlResponse.class.php : 38
	7	myHtmlResponse->doAfterActions()	D:\Documents\tbouchet\Mes Documents\personnel\lum\jelix\lib\jelix\core\response\jResponseHtml.class.php : 177
	8	jResponseHtml->output()	D:\Documents\tbouchet\Mes Documents\personnel\lum\jelix\lib\jelix\core\jCoordinator.class.php : 214
	9	jCoordinator->process()	D:\Documents\tbouchet\Mes Documents\personnel\lum\www\index.php : 19

Et la page renvoyée est la page index par défaut...

J'ai du louper quelque chose, mais quoi ? :)


Mindiell

  [Opened] jURL significant et réécriture d'urls

Reply #1 Posted by foxmask on 02/27/2012 13:35

Bonjour,

la log dit que ( ce n'est qu'une NOTICE ) l'index logged n'existe pas ligne 12 du fichier header_html_t.php

c'est tout.


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

  [Opened] jURL significant et réécriture d'urls

Reply #2 Posted by Mindiell on 02/27/2012 13:51

Ok, c'est normal, en effet : j'utilise cette variable dnas le template incriminé. Le truc, c'est plutôt : pourquoi jelix ne semble pas appeler la bonne action de mon module ?


Mindiell

  [Opened] jURL significant et réécriture d'urls

Reply #3 Posted by foxmask on 02/27/2012 15:20

2 causes possibles je pense :

  • l'url /faq existe deja plus tot dans le urls.xml et pointe sur l'action default:index ?
  • dans l'action default:faq ; le template utilisé est celui de default:index ?

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

  [Opened] jURL significant et réécriture d'urls

Reply #4 Posted by Mindiell on 02/27/2012 15:26

Voici mon fichier complet :

<?xml version="1.0" encoding="UTF-8"?>
<urls xmlns="http://jelix.org/ns/urls/1.0">
   <classicentrypoint name="index" default="true" noentrypoint="true">

      <url pathinfo="/map" module="main" action="default:view">
         <param name="zone" value="world"/>
      </url>

      <url pathinfo="/map/:zone" module="main" action="default:view">
         <param name="zone" type="string"/>
      </url>

      <url pathinfo="/faq" module="main" action="default:faq">
      </url>

      <url pathinfo="/login" module="main" action="default:connection">
      </url>

   </classicentrypoint>
</urls>

Et si j'utilise /index.php?module=main&action=default:faq ou /index.php?module=main&action=faq Je tombe sur la bonne page :)


Mindiell

  [Opened] jURL significant et réécriture d'urls

Reply #5 Posted by Mindiell on 02/27/2012 15:30

Enfin, pour information, les logs d'apache m'indiquent ceci.

  • Avec l'url site/faq

127.0.0.1 - - [27/Feb/2012:15:26:14 +0100] "GET /faq HTTP/1.1" 200 57545

  • Avec l'url site/index.php?module=main&action=faq

127.0.0.1 - - [27/Feb/2012:15:29:00 +0100] "GET /index.php?module=main&action=faq HTTP/1.1" 200 2487

Il y a bien un souci quelque part, mais je n'arrive pas à dire s'il s'agit d'apache ou de jelix :)

J'ai remplacé index.php par test.php (un simple phpinfo) et, à ce moment-là, la page info est bien affichée et apache a ça dans ses logs 127.0.0.1 - - [27/Feb/2012:15:19:18 +0100] "GET /test.php/faq?=PHPE9568F34-D428-11d2-A769-00AA001ACF42 HTTP/1.1" 200 2524


Mindiell

  [Opened] jURL significant et réécriture d'urls

Reply #6 Posted by foxmask on 02/27/2012 15:42

Me semble qu'il manque une regle de réécriture apache pour gerer l'absence ed index.php http://jelix.org/articles/fr/manuel-1.3/urls/significant


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

  [Opened] jURL significant et réécriture d'urls

Reply #7 Posted by Mindiell on 02/27/2012 15:51

Mon fichier conf de apache contient pourtant bien ça :

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

La ré-écriture fonctionne d'ailleurs avec la règle : RewriteRule ^(.*)$ /test.php/$1 [L,QSA]

C'est ça qui m'étonne le plus


Mindiell

  [Opened] jURL significant et réécriture d'urls

Reply #8 Posted by foxmask on 02/27/2012 16:06

le ficheir de config ddefaultconfig.ini.php contient bien ?

[urlengine]
enableParser = off

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

  [Opened] jURL significant et réécriture d'urls

Reply #9 Posted by Mindiell on 02/27/2012 16:08

Voici son contenu qui, pour moi, devrait être ok :

[urlengine]
; name of url engine :  "simple", "basic_significant" or "significant"
engine=significant

; this is the url path to the jelix-www content (you can found this content in lib/jelix-www/)
; because the jelix-www directory is outside the yourapp/www/ directory, you should create a link to
; jelix-www, or copy its content in yourapp/www/ (with a name like 'jelix' for example)
; so you should indicate the relative path of this link/directory to the basePath, or an absolute path.
; if you change it, you probably want to change path in datepickers, wikieditors and htmleditors sections
jelixWWWPath="jelix/"
jqueryPath="jelix/jquery/"

; enable the parsing of the url. Set it to off if the url is already parsed by another program
; (like mod_rewrite in apache), if the rewrite of the url corresponds to a simple url, and if
; you use the significant engine. If you use the simple url engine, you can set to off.
enableParser=off

multiview=off

; basePath corresponds to the path to the base directory of your application.
; so if the url to access to your application is http://foo.com/aaa/bbb/www/index.php, you should
; set basePath = "/aaa/bbb/www/".
; if it is http://foo.com/index.php, set basePath="/"
; Jelix can guess the basePath, so you can keep basePath empty. But in the case where there are some
; entry points which are not in the same directory (ex: you have two entry point : http://foo.com/aaa/index.php
; and http://foo.com/aaa/bbb/other.php ), you MUST set the basePath (ex here, the higher entry point is index.php so
; : basePath="/aaa/" )
basePath=

defaultEntrypoint=index

entrypointExtension=.php

; action to show the 'page not found' error
notfoundAct="jelix~error:notfound"

; list of actions which require https protocol for the simple url engine
; syntax of the list is the same as explained in the simple_urlengine_entrypoints
simple_urlengine_https=

Mindiell

 
Page
  1. jURL significant et réécriture d'urls