J'ai cherché partout cette réponse, et les réponses qui ont été postées ne correspondent pas à ma situation spécifique car elle me donne des erreurs 404, et je ne sais pas pourquoi.Préserver les doubles barres obliques dans mod_rewrite
Je suis en train de réécrire ceci: /c.php?url=http://www.example.com
Dans ceci: /c/http://www.example.com
En ce moment j'ai dans mon mod_rewrite:
RewriteEngine on
RewriteRule ^c/(.*)(/)?$ /c.php?url=$1
Mais quand il réécrit l'URL que je suis en train pour envoyer dans le script PHP, il écrit "http:/example.com
", avec une barre oblique au lieu de la double barre oblique.
J'ai vu beaucoup de choses postées à ce sujet impliquant la règle THE_REQUEST, mais quand j'essaie de les appliquer à mon fichier htaccess, elles échouent. Je ne suis pas sûr de ce qui ne va pas, toute aide serait très appréciée. Apache supprime plusieurs barres obliques à l'intérieur du chemin.
Merci, Gumbo. Je devais ajouter un + dans le/c/([^? \] +) /? pour permettre plus d'un caractère, mais cela fonctionne bien, bien que je sois nouveau à mod_rewrite et j'ai du mal à déchiffrer comment fonctionne la commande THE_REQUEST ... Aussi, est-il possible de conserver des points d'interrogation dans l'URL cela est envoyé aussi bien? Merci! – boomboom
@boomboom: * LE \ _REQUEST * représente la [ligne de requête] (http://www.w3.org/Protocols/rfc2616/rfc2616-sec5.html#sec5.1). Et si vous voulez obtenir le chemin d'accès complet et la chaîne de requête, il est probablement plus facile de l'obtenir directement dans * c.php * depuis '$ _SERVER ['REQUEST_URI']'. – Gumbo