您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

.htaccess url中带有特殊字符的有关问题

2025/4/12 17:40:07发布47次查看
.htaccess url中带有特殊字符的问题
rewriterule ^(r|r)(e|e)(g|g)/step2/(.*)/?$ do.php?ac=6a538ae003e30eacbd5b0c1f1d18aa50&op=active&hash=$4
偶在.htacess文件中定义上面的规则,希望
http://127.0.0.1/reg/step2/3635dbp6n66a0ory3cvn3ovtcopu5i2gju2s8myqlppdkp4wma6wjjatbsyp%2ft189%2bjz能被解析为
http://127.0.0.1/do.php?ac=6a538ae003e30eacbd5b0c1f1d18aa50&op=active&hash=3635dbp6n66a0ory3cvn3ovtcopu5i2gju2s8myqlppdkp4wma6wjjatbsyp%2ft189%2bjz
现在运行的时候好像有点问题,hash参数中带有特殊符号,无法正确解析,提示object not found!
如果直接输入http://127.0.0.1/reg/step2/3635dbp6n66a0ory3cvn3ovtcopu5i2gju2s8myqlppdkp4wma6wjjatbsyp/t189+jz(即/和+等特殊符号不经过urlencode)可以解析,但是这样一来,hash中的参数无法还原成原来的参数。(hash参数中有2个值经过一个自定义函数加密传递,调用解码函数可以还原其中的2个值)
------解决方案--------------------
urlencode()
接收数据后 urldecode() 再调用你的解密函数
------解决方案--------------------
^(r|r)(e|e)(g|g)/ 何必这样。直接[nc]
------解决方案--------------------
实在不行 就
$url = 'xxx';
$url = urlencode(str_replace('/','!',$url));
..........
接收数据的时候
$url = urldecode(str_replace('!','/',$url));
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product