Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour,
J'ai un problème technique épineux pour lequel je ne trouve pas de solution.
Je réalise (dans une application zend_framework) un url_rewriting où tous les fichiers inexistants sont renvoyés vers index.php. La config est dans le virtualhost, dans des balises <Location> (voir plus bas).
Mais je veux aussi affecter des php_value à certaines url.
Or, ces configs ne sont pas prises en compte, car il semble que l'url testée dans <Location> soit celle réécrite (/index.php) et non pas la requête initiale (/pr/media/)
Voici mon virtualhost :
<Location /pr/media/> php_value post_max_size "300M" php_value upload_max_filesize "210M" php_value max_input_time 1800 php_value max_execution_time 1800 php_value memory_limit -1 </Location> <Location /> RewriteEngine on RewriteCond %{REQUEST_FILENAME} -s [OR] RewriteCond %{REQUEST_FILENAME} -l [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^.*$ - [NC,L] RewriteRule ^.*$ index.php [NC,L] </Location>
Quand je crée un fichier /pr/media/test.php, la config est bonne (le fichier existant, le rewriting n'a pas lieu).
Sinon, sur une requête rewritée (par exemple /pr/media/add qui est renvoyée vers /index.php), la config est fausse.
Enfin, pour une config <Location /index.php>, la requête /index.php a une bonne config.
Une idée ?
Hors ligne
J'ai trouvé
La solution :
[lang=php]<If "%{THE_REQUEST} =~ m#^POST /pr/media/(add|edit)#"> php_value post_max_size "300M" php_value upload_max_filesize "210M" php_value max_input_time 1800 php_value max_execution_time 1800 php_value memory_limit -1 </If>
THE_REQUEST garde la requête initiale tout le temps (mais n'est pas dispo par $_SERVER).
Après, c'est une bête regex car THE_REQUEST est du type 'POST /pr/media/add HTTP/1.1'.
m# ... # : change le délimiteur de / vers # (pour utiliser / dans la regex)
^ : début de chaîne
(add|edit) : l'un ou l'autre
En toutes lettres : si /pr/media/add ou /pr/media/edit est appelé en POST, fait ce qui suit.
Je rappelle que les instructions <If> ne sont disponible que dans Apache 2.4+
Si ça peut servir à quelqu'un !
Dernière modification par vg33 (22-06-2013 14:55:07)
Hors ligne
Pages: 1