У меня есть проект PHP, где мне нужно отправить хэш-символ (#) в путь URL. ( http://www.example.com/parameter#23/parameter#67/index.php ) Я думал, что urlencode позволит это преобразовать хеш в% 23
Но теперь я вижу, что даже urlencoded hash заставляет браузер обрабатывать все вправо как фрагмент URL (или запрос).
Есть ли способ передать хэш, или мне нужно сделать замену символов до urlencode?
Изменить для добавления (19 сентября 2017 года):
Оказывается, я задавал неправильный вопрос. Моя проблема заключалась не в использовании хэш-символа в пути (кодирование, в котором оно работает), а в использовании mod_rewrite для преобразования его в строку запроса. Я не смог перекодировать его в RewriteRule. Я отредактирую название для соответствия.
Вот правило перезаписи, которое я использовал:
RewriteEngine On # convert path strings into query strings RewriteRule "^(.*)/(.*)/hashtags.php" /hashtags.php?parameter_1=$1&parameter_2=$2 [QSA,L]
Как только я добавил тег B, он работал правильно:
RewriteEngine On # convert path strings into query strings RewriteRule "^(.*)/(.*)/hashtags.php" /hashtags.php?parameter_1=$1&parameter_2=$2 [QSA,L,B]
Кодировать хеш в URL-адресе с% 23
http://twitter.com/home?status=I+believe+in+%23love
"Я верю в любовь"
Ссылка на кодировку URL: http://www.w3schools.com/tags/ref_urlencode.asp