我想在GET param中传递URL,如下所示:
网站地址/ b16ee4f31e17df0d3af5?网址= https%3A%2F%2Fwww.facebook.com%2F
我正在使用urlencode
来转义字符,但我看到403 Error
这个网址,因为URL GET参数中的某些字符在这种情况下是点字符。
如果我使用CI3函数url_title
,它将转义点字符,但我需要它们,因为我在GET参数中需要有效的URL。
如何在某些情况下传递带有. & ? \
等字符的URL参数以及可以在标准网址中找到的其他字符?
答案 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)
网址已经被编码(即如果您只是从地址栏复制并粘贴它),那么您可以将其用于进一步编码