[英]Pass GET param which is another URL with PHP - Codeigniter 3, Apache
我想像这样在GET参数中传递URL:
网站网址/b16ee4f31e17df0d3af5?url=https%3A%2F%2Fwww.facebook.com%2F
我正在使用urlencode
来转义字符,但由于该URL GET参数中的某些字符(在这种情况下为点字符),因此我看到此URL的403 Error
。
如果我使用CI3函数url_title
,它将转义点字符,但是我需要它们,因为我需要GET参数中的有效url。
在某些情况下,我该如何传递URL get参数,例如. & ? \\
. & ? \\
. & ? \\
和其他可以在标准网址中找到的字符?
您可以在配置文件中更改$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']
$config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-';
将您要传递给GET Url的字符添加到该字符中。 此配置存储在config文件夹的config.php
中。
该网址已被编码(也就是说,您只是从地址栏中复制并粘贴了该网址),因此可以将其用于进一步的编码
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.