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

Php URL使用CI对传入URL进行编码,php,.htaccess,codeigniter,controller,urlencode,Php,.htaccess,Codeigniter,Controller,Urlencode,我有一个以URL为参数的控制器。URL具有前向斜杠和查询字符串,如下所示: $config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-='; //added = sign to permit to enable base64 encode http://example.com/foo?bar=baz&bar2=baz2 问题是,URL没有编码,我无法更改。(忘了提到我可以在手前对URL进行编码,这肯定会改变一切) 我想在URL到达我的控制器之前对其进行编码

我有一个以URL为参数的控制器。URL具有前向斜杠和查询字符串,如下所示:

$config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-='; //added = sign to permit to enable base64 encode
http://example.com/foo?bar=baz&bar2=baz2

问题是,URL没有编码,我无法更改。(忘了提到我可以在手前对URL进行编码,这肯定会改变一切)

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


codeigniter是否有任何内置方法,或者我需要设置什么
.htaccess
规则来处理此问题?

对其进行了一些修改并找到了答案:

您要做的是将URL编码为base64

base64_编码($uri)

如果在URI消息中得到不允许的字符,请转到
application/config/config.php
并设置
$config['allowed\u URI\u chars']
,以接受问题字符。在我的例子中,我需要对我的参数启用
=

最终配置参数如下所示:

$config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-='; //added = sign to permit to enable base64 encode
在控制器端,我只需要一个
echobase64_解码($url)

通过这种方式,我可以将几乎任何字符串传递到URL段中,并且它可以正常工作

URL段将使用一系列数字和字母进行编码,这些数字和字母将转换为包含URI编码的字符串

:)

(附言:光明节快乐,圣诞快乐)


感谢这个问题的帮助


仔细研究了一下,发现了:

您要做的是将URL编码为base64

base64_编码($uri)

如果在URI消息中得到不允许的字符,请转到
application/config/config.php
并设置
$config['allowed\u URI\u chars']
,以接受问题字符。在我的例子中,我需要对我的参数启用
=

最终配置参数如下所示:

$config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-='; //added = sign to permit to enable base64 encode
在控制器端,我只需要一个
echobase64_解码($url)

通过这种方式,我可以将几乎任何字符串传递到URL段中,并且它可以正常工作

URL段将使用一系列数字和字母进行编码,这些数字和字母将转换为包含URI编码的字符串

:)

(附言:光明节快乐,圣诞快乐)


感谢这个问题的帮助