我有一个控制器,它将URL作为参数。 URL有正斜杠和查询字符串,它看起来像这样:
http://example.com/foo?bar=baz&bar2=baz2
问题是,URL是未编码的,我无法改变它。 (忘了提到我实际上可以事先对URL进行编码,这肯定会改变一些事情)
我想在URL到达我的控制器之前对其进行编码,然后我想在页面上回显这个URL。
codeigniter是否有任何内置方法或我需要设置的.htaccess
规则是什么?
答案 0 :(得分:1)
在一点点被砍掉并弄明白了:
您所做的是将网址编码为base64
base64_encode($uri)
;
如果您在URI消息中收到不允许的字符,请转到application/config/config.php
并设置$config['permitted_uri_chars']
以接受问题字符。在我的情况下,我需要为我的参数启用=
。
最终配置参数如下所示:
$config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-='; //added = sign to permit to enable base64 encode
控制器端的我只有一个echo base64_decode($url);
通过这种方式,我可以将任何字符串传递到URL段中,并且可以正常工作。
URL段将使用一系列数字和字母进行编码,这些数字和字母转换为在其中编码URI的字符串。
:)
(P.S。Happy Hanukkah& Marry xMAS)
感谢此问题寻求帮助