[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
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
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
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
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
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
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
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
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
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