我正在尝试创建一个像这样工作的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解析器.
我该怎么做才能解决这个问题?
我认为您收到的错误消息不是来自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中摆弄它,如果它仍然不工作 - 你可能会发现斜杠被过滤掉了