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

WBOY
Lepaskan: 2016-06-13 13:13:26
asal
1066 orang telah melayarinya

.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));

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan