【问题标题】:URL encode incoming URL with CI使用 CI 对传入 URL 进行 URL 编码
【发布时间】:2012-01-27 17:51:04
【问题描述】:

我有一个将 URL 作为参数的控制器。 URL 有正斜杠和一个查询字符串,它看起来像这样:

http://example.com/foo?bar=baz&bar2=baz2

问题是,URL 是未编码的,我无法改变它。 (忘了说我实际上可以事先对 URL 进行编码,这肯定会改变一些事情)

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

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

【问题讨论】:

    标签: php .htaccess codeigniter controller urlencode


    【解决方案1】:

    折腾了一下,搞明白了:

    您所做的是将 URL 编码为 base64

    base64_encode($uri);

    如果您在 URI 消息中收到不允许的字符,请转到 application/config/config.php 并设置 $config['permitted_uri_chars'] 以接受问题字符。在我的情况下,我需要为我的参数启用=。

    最终配置参数如下所示:

    $config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-='; //added = sign to permit to enable base64 encode
    

    在控制器端我只有一个echo base64_decode($url);

    这样我几乎可以将任何字符串传递到 URL 段中并且它可以工作。

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

    :)

    (P.S. 光明节快乐并嫁给 xMAS)


    感谢这个问题的帮助

    code igniter :: send url as param?

    【讨论】:

      猜你喜欢
      • 2014-05-27
      • 1970-01-01
      • 2012-08-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-30
      • 1970-01-01
      • 2014-12-25
      相关资源
      最近更新 更多