developer.jelix.org n'est plus utilisée, et existe uniquement pour son historique. Postez les nouveaux tickets sur le compte github.
Opened 13 years ago
Closed 13 years ago
#441 closed bug (fixed)
mod_rewrite : No input file specified
Reported by: | hugues | Owned by: | |
---|---|---|---|
Priority: | normal | Milestone: | Jelix 1.0.2 |
Component: | jelix:core request | Version: | 1.0.1 |
Severity: | normal | Keywords: | php, cgi |
Cc: | Blocked By: | ||
Blocking: | Documentation needed: | ||
Hosting Provider: | ovh | Php version: | php cgi |
Description
Sur une distrib ovh, a base de gentoo et de php en cgi avec suphp, la règle de réécriture
RewriteRule ^(.*)$ index.php/$1 [L]
ne passe absolument pas. j'ai l'erreur "No input file specified." J'ai tenter pas mal de chose, y compris "cgi.fix_pathinfo", mais sans aucun effet !
pour l'instant, la solution mis en place ( pourri ) c'est
RewriteRule ^(.*)$ index.php/?q123654=/$1 [L]
avec dans la méthode parse du moteur significant url
if(isset($_REQUEST['q123654'])) $pathinfo = $_REQUEST['q123654'];
C'est vraiment très laid, mais semble fonctionner.
est il possible d'envisager inclure une règle de réécriture alternative de ce genre dans la config de base ? De maniere plus elegante dans le code, et avec un paramètre dans le defaultconfig.ini.php pour l'activer par exemple ? Sinon pour ceux qui ont une petite experience de jelix, ma modif est elle viable ?
Merci.
Attachments (1)
Change History (6)
comment:1 Changed 13 years ago by laurentj
- Hosting Provider set to ovh
- Keywords ovh gentoo removed
- Resolution set to duplicate
- Status changed from new to closed
- Summary changed from No input file specified to mod_rewrite : No input file specified
comment:2 Changed 13 years ago by laurentj
Au fait, il manque le flag QSA à ta rêgle. C'est utile de pouvoir récupèrer les infos de la partie query string ;-)
RewriteRule ^(.*)$ index.php/?q123654=/$1 [L,QSA]
comment:3 Changed 13 years ago by hugues
- Resolution duplicate deleted
- Status changed from closed to reopened
comment:4 Changed 13 years ago by laurentj
- Component changed from jelix to jelix:core request
- Milestone set to Jelix 1.0.2
comment:5 Changed 13 years ago by laurentj
- Resolution set to fixed
- Status changed from reopened to closed
En fait je ne vais pas intégrer ce patch, car en fait ce problème est aussi succeptible d'apparaître pour les autres types de requetes comme css, xul etc. Donc plutôt que d'avoir autant de nouvelle classe, j'ai préféré modifier directement la classe de base jRequest.
Ainsi maintenant, il suffit de rajouter un paramètre pathInfoInQueryParameter, dans la section urlengine de la configuration. Ce paramètre doit contenir le nom du parametre dans $_GET qui contient la valeur du pathinfo (donc en reprenant l'exemple : pathInfoInQueryParameter=q123654) Si pathInfoInQueryParameter est vide, le fonctionnement est comme d'habitude, jelix va chercher le pathinfo dans $_SERVERPATH_INFO?.
Corrigé dans le trunk et la branche 1.0.x
Problème déjà répertorié : ticket #390. C'est un problème de PHP/CGI/suphp/mod_rewrite, pas de jelix.
Fait ton propre objet request qui récupèrera les infos de q123654.
Et puisqu'apparement c'est un serveur dédié, utilise mod_php si possible. (CGI ça sux au niveau performance).
Totalement HS : utiliser une gentoo sur un serveur... hum... :-p