小编Mar*_*ark的帖子

使用mod_rewrite将带有哈希字符的路径转换为查询字符串

我有一个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]
Run Code Online (Sandbox Code Playgroud)

一旦我添加了B标签,它就能正常工作:

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

php apache hash mod-rewrite urlencode

35
推荐指数
1
解决办法
4万
查看次数

标签 统计

apache ×1

hash ×1

mod-rewrite ×1

php ×1

urlencode ×1