传递GET param这是另一个用PHP的URL - Codeigniter 3,Apache

时间:2017-01-08 16:53:33

标签: php codeigniter url codeigniter-3

我想在GET param中传递URL,如下所示:

  

网站地址/ b16ee4f31e17df0d3af5?网址= https%3A%2F%2Fwww.facebook.com%2F

我正在使用urlencode来转义字符,但我看到403 Error这个网址,因为URL GET参数中的某些字符在这种情况下是点字符。

如果我使用CI3函数url_title,它将转义点字符,但我需要它们,因为我在GET参数中需要有效的URL。

如何在某些情况下传递带有. & ? \等字符的URL参数以及可以在标准网址中找到的其他字符?

3 个答案:

答案 0 :(得分:1)

您可以在配置文件中更改$config['permitted_uri_chars']

Leave blank to allow all characters -- but only if you are insane.

您也可以这样做:

第1步: $newurl = urlencode(base64_encode('http://google.com'));

然后你将有一个字符串,将该字符串作为GET参数传递并使用:

将其解析回来
$realUrl = base64_decode(urldecode($param1));

其中$param1表示控制器的第一个参数。

第2步:=添加到配置文件中的$config['permitted_uri_chars']

答案 1 :(得分:1)

$config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-';

添加您尝试在GET Url上传递的字符。此配置存储在配置文件夹的config.php

答案 2 :(得分:-1)

网址已经被编码(即如果您只是从地址栏复制并粘贴它),那么您可以将其用于进一步编码