当前位置:  开发笔记 > 编程语言 > 正文

url编码正斜杠打破我的codeigniter应用程序

如何解决《url编码正斜杠打破我的codeigniter应用程序》经验,为你挑选了1个好方法。

我正在尝试创建一个像这样工作的url字符串:

/app/process/example.com/index.html

换句话说,

/app/process/$URL

我然后检索网址

$this->uri->segment(3);

URL中的正斜杠当然是访问uri段的问题,所以我将继续并对url编码URL部分:

/app/process/example.com%2Findex.html

..但现在我得到一个404说...

Not Found

The requested URL /app/process/example.com/index.html was not found on this server. 

似乎我的正斜杠的url编码打破了CI​​的URI解析器.

我该怎么做才能解决这个问题?



1> Tom Haigh..:

我认为您收到的错误消息不是来自codeigniter,而是来自您的Web服务器.

我使用Apache2复制了这个,甚至没有使用CodeIgniter:我创建了一个文件index.php,然后访问index.php/a/b/c- 它运行正常.如果我然后尝试访问,index.php/a/b/c%2F我从Apache获得了404.

我通过添加到我的Apache配置解决了它:

AllowEncodedSlashes On

有关更多信息,请参阅文档

一旦你完成了这个,你可能需要$config['permitted_uri_chars']在codeigniter中摆弄它,如果它仍然不工作 - 你可能会发现斜杠被过滤掉了


我刚刚在网站上解决了这个问题.这有点像黑客,但它完成了工作:我对URL进行了双重编码.这样REQUEST_URI的urldecode就不会过早地恢复/.
推荐阅读
虎仔球妈_459
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有