URL使用CI对传入的URL进行编码

时间:2011-12-25 22:06:23

标签: php .htaccess codeigniter controller urlencode

我有一个控制器,它将URL作为参数。 URL有正斜杠和查询字符串,它看起来像这样:

http://example.com/foo?bar=baz&bar2=baz2

问题是,URL是未编码的,我无法改变它。 (忘了提到我实际上可以事先对URL进行编码,这肯定会改变一些事情)

我想在URL到达我的控制器之前对其进行编码,然后我想在页面上回显这个URL。

codeigniter是否有任何内置方法或我需要设置的.htaccess规则是什么?

1 个答案:

答案 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)


感谢此问题寻求帮助

code igniter :: send url as param?