web-dev-qa-db-fra.com

Utilisation de mod_rewrite pour convertir des chemins avec des caractères de hachage en chaînes de requête

J'ai un projet PHP où je dois envoyer un caractère de hachage (#) dans le chemin d'une URL. ( http://www.example.com/parameter#23 /parameter#67/index.php ) Je pensais que le code url le permettrait, convertissant le hachage en% 23

Mais maintenant, je vois que même le hachage codé en url oblige le navigateur à tout traiter à droite comme un fragment d'URL (ou une requête).

Existe-t-il un moyen de passer un hachage ou dois-je effectuer une substitution de caractères avant le code url?

Modifier pour ajouter (19 septembre 2017):

Il s'avère que je posais la mauvaise question. Mon problème n'était pas d'utiliser le caractère de hachage dans le chemin (l'encodage fonctionne), mais d'utiliser mod_rewrite pour le convertir en une chaîne de requête. Je n'avais pas réussi à le ré-encoder dans la RewriteRule. Je modifierai le titre pour qu'il corresponde.

Voici la règle de réécriture que j'utilisais:

RewriteEngine On
# convert path strings into query strings
RewriteRule "^(.*)/(.*)/hashtags.php"      /hashtags.php?parameter_1=$1&parameter_2=$2 [QSA,L]

Dès que j'ai ajouté la balise B, cela a fonctionné correctement:

RewriteEngine On
# convert path strings into query strings
RewriteRule "^(.*)/(.*)/hashtags.php"      /hashtags.php?parameter_1=$1&parameter_2=$2 [QSA,L,B]
35
Mark

Encodez le hachage dans l'URL avec% 23

http://Twitter.com/home?status=I+believe+in+%23love

"Je crois en l'amour"

Référence de codage d'URL: http://www.w3schools.com/tags/ref_urlencode.asp

85
Spider