OVH Community, votre nouvel espace communautaire.

.htaccess, redirection avec passage de paramètres


didier_57
27/08/2016, 16h43
Bonjour

J'ai créé un sous-domaine (test.cabuzel.ovh) qui pointe sur le répertoire www/test.
Dans ce sous-domaine, je cherche à rediriger des requêtes RESTFull. Concrètement, je cherche à rediriger une URL du type :
test.cabuzel.ovh/tst/topic
en
test.cabuzel.ovh/php/tst.php/tst/topic

J'ai donc ajouté le fichier www/test/.htaccess suivant :
Options +FollowSymlinks
RewriteEngine On
RewriteRule ^(tst/.*)$ php/tst.php/$1 [L]

1) Lorsque j'entre, dans un navigateur, l'url directe (http://test.cabuzel.ovh/php/tst.php/tst/topic) je récupère bien le message codé au format JSON.

2) J'utilise la ligne suivante dans htaccess :
RewriteRule ^(tst/.*)$ php/tst.php [L]
en entrant dans le navigateur l'url http://test.cabuzel.ovh/tst/topic, j'obtient également le même résultat, la redirection fonctionne.
Mais les paramètres à la requête REST ne sont pas transmis.

3) Donc je remplace la ligne, dans .htacess, par :
RewriteRule ^(tst/.*)$ php/tst.php/$1 [L]
Et là, l'url http://test.cabuzel.ovh/tst/topic affiche une page html contenant 'File not found' (donc pas d'erreur 404) alors qu'elle devrait afficher la même chose que lorsque je rentre l'URL en direct.

4) Je remplace, dans le .htaccess, tstphp par tst1.php (fichier inexistant) et là j'ai une erreur 404 (normal) avec le message suivant :
The requested URL /php/tst1.php/tst/topic was not found on this server.

J'en conclus que la redirection suivante :
RewriteRule ^(tst/.*)$ php/tst.php/$1 [L]
pointe bien vers /php/tst.php/tst/topic

Problème
Comment modifier le fichier .htaccess pour que la redirection vers /php/tst.php/tst/topic exécute le script de la même manière que lorsque je rentre l'URL directement dans le navigateur ?



Cordialement
Didier Cabuzel