J'essaye de mette en place sur mon serveur un traitement XSL généralisé à partir d'une requête sur un fichier HTML. Après avoir passé une nuit à essayer de faire marcher les différents modules Apache (murka, mod_xslt) je me suis rabattu sur l'idée de faire cela avec l'URL Rewriting...et j'y est passé une autre nuit sans succès :cry: ...
Ce que je veux mettre en place est assez simple en théorie : si une requête concerne un fichier HTML de la forme "<nom fichier>-<nombre>.html" et si ce fichier n'existe pas appeler un script php qui applique la transformation du fichier "<nom fichier>.xml" avec comme paramètre de page <nombre> par le fichier XSL "<nom de la dtd>_html.xslt".
Alors j'ai pensé à ça :
Mais la condition ne marche pas...j'ai testé dans tous les sens REQUEST_URI, REQUEST_FILENAME et SCRIPT_FILENAME avec -F et -U mais rien n'a faire. Le code que je viens de donner est celui qui marche le mieux.
Je vous donne le log pour le code ci-dessus avec un fichier qui n'existe pas :
Pourquoi me dit-il qu'il trouve l'URI pour ce fichier inexistant : parce qu'il existe une règle de réécriture pour ce fichier ? Cela n'a pas vraiment de sens...
Aidez moi s'il vous plait, car je commence à devenir insomniaque :? . J'aurai d'autres questions par la suite mais chaque chose en son temps...
En tout cas très bon forum...
Ce que je veux mettre en place est assez simple en théorie : si une requête concerne un fichier HTML de la forme "<nom fichier>-<nombre>.html" et si ce fichier n'existe pas appeler un script php qui applique la transformation du fichier "<nom fichier>.xml" avec comme paramètre de page <nombre> par le fichier XSL "<nom de la dtd>_html.xslt".
Alors j'ai pensé à ça :
Code:
RewriteCond %{REQUEST_FILENAME} -U
RewriteRule ^.+-[0-9]+\.html$ /xslt.php [L,NS]
Mais la condition ne marche pas...j'ai testé dans tous les sens REQUEST_URI, REQUEST_FILENAME et SCRIPT_FILENAME avec -F et -U mais rien n'a faire. Le code que je viens de donner est celui qui marche le mieux.
Je vous donne le log pour le code ci-dessus avec un fichier qui n'existe pas :
Code:
[rid#2798568/initial] (2) init rewrite engine with requested uri /GIME-0.html
[rid#2798568/initial] (3) applying pattern '^.+-[0-9]+\.html$' to uri '/GIME-0.html'
[rid#279a580/subreq] (2) init rewrite engine with requested uri /GIME-0.html
[rid#279a580/subreq] (1) pass through /GIME-0.html
[rid#2798568/initial] (4) RewriteCond: input='/GIME-0.html' pattern='-U' => matched
[rid#2798568/initial] (2) rewrite /GIME-0.html -> /xslt.php
[rid#2798568/initial] (2) local path result: /xslt.php
[rid#2798568/initial] (2) prefixed with document_root to d:/web/xslt.php
[rid#2798568/initial] (1) go-ahead with d:/web/xslt.php [OK]
Pourquoi me dit-il qu'il trouve l'URI pour ce fichier inexistant : parce qu'il existe une règle de réécriture pour ce fichier ? Cela n'a pas vraiment de sens...
Aidez moi s'il vous plait, car je commence à devenir insomniaque :? . J'aurai d'autres questions par la suite mais chaque chose en son temps...
En tout cas très bon forum...