传递 GET 参数,这是另一个 URL 和 PHP - Codeigniter 3,Apache

Pass GET param which is another URL with PHP - Codeigniter 3, Apache

我想像这样在 GET 参数中传递 URL :

SITE URL/b16ee4f31e17df0d3af5?url=https%3A%2F%2Fwww.facebook.com%2F

我正在使用 urlencode 来转义字符,但我看到 403 Error 用于此 URL,因为此 URL GET 参数中的某些字符大小写点字符。

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

如何在某些情况下使用 . & ? \ 等字符和标准 URL 中可以找到的其他字符来传递 URL get 参数?

url 已经被编码(也就是说,如果您只是从地址栏复制并粘贴它)所以您可以进一步编码使用它

您可以在配置文件

中更改 $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.php 中。