Question

Voici mes règles .htaccess:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^(.*)/(.*)$ index.php?var1=$1&item=$2&var2=%{REQUEST_URI} [NC,L]
RewriteRule ^(.*)$ index.php?var1=$1 [NC]

Voici une URL (avec un point de fuite à la fin): http://localhost/test/secondvar.

Le problème est que le point de fuite ne vient pas à l'intérieur de la variable var2 de GET

J'ai utilisé un print_r($_GET) et est ici le résultat avec l'URL ci-dessus:

Array ( [var1] => test [var2] => secondvar [uri] => /test/secondvar. )

Alors, ma question est, comment puis-je obtenir que point à la fin de l'URL en tant que paramètre var? Comme vous pouvez le voir, la REQUEST_URI montre que le apache connaît le point.

Je sais que je ne peux pas envoyer les chemins en tant que paramètres de GET et de prendre soin de lire les chemins dans l'URI de PHP, mais je voudrais savoir pourquoi le point ne vient pas et comment y remédier, si je trop compliqué plutôt opter pour la solution PHP directe.

EDIT: non seulement point à la fin, mais en fin? trop ... = [

Était-ce utile?

La solution

Il est peut-être que php exclut les points de fuite. Je sais qu'ils convertissent souvent les points sur en POST / GET à underscores. Je voudrais juste faire

explode('/',$_SERVER['REQUEST_URI'])
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top