我有一个PHP项目,我需要在URL的路径中发送一个哈希字符(#)。 (http://www.example.com/parameter#23/parameter#67/index.php)我认为urlencode会允许,将哈希值转换为%23
但是现在我看到,即使是urlencoded哈希也会强制浏览器将所有内容视为URL片段(或查询)。
有没有办法传递哈希值,还是我需要在urlencode之前进行字符替换?
编辑添加(2017年9月19日):
事实证明我提出了错误的问题。我的问题不是在路径中使用哈希字符(编码它确实有效),而是使用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]
答案 0 :(得分:85)
使用%23
对网址中的哈希进行编码http://twitter.com/home?status=I+believe+in+%23love
“我相信#love”