dolphin 发表于 2014-12-16 11:58:07

CodeIgniter能选择不是有伪静态么?

本帖最后由 Closer 于 2014-12-19 16:50 编辑

在自己一直用的LNMP环境,都是用里面的wordpress规则就可以了。

开源的程序,给很多人用。

每天都有人搞不定伪静态问题来找我。

要是伪静态功能能自由开关就完美了。

像wordpress和discuz,不用伪静态可以用么?

我不怎么了解,我好像记得是可以在后台控制的。

好像问题比较蠢。

aqxinzhuan 发表于 2014-12-17 17:53:35

可以的啊。
启用查询字符串,
修改配置文件,
$config['enable_query_strings'] = FALSE;//设置为TRUE
然后url就像这样子咯:index.php?c=controller&m=method
详情请看手册:
http://codeigniter.org.cn/user_guide/general/urls.html

dolphin 发表于 2014-12-18 16:21:50

aqxinzhuan 发表于 2014-12-17 17:53
可以的啊。
启用查询字符串,
修改配置文件,


谢谢大神指点。

当场在看这段文档的时候没有注意到。

根据文档的方法正确的启用了查询字符串。

但是遇到一个问题:

函数参数无法传入。

例如:

在Xixi的控制器中有如下函数:


        public function test($page)
        {
                echo $page;
        }



然后使用 : http://127.0.0.1/xiximage/index.php?c=xixi&m=test&page=3 进行访问

出现错误:

A PHP Error was encounteredSeverity: WarningMessage: Missing argument 1 for Xixi::test()Filename: controllers/xixi.phpLine Number: 41
A PHP Error was encounteredSeverity: NoticeMessage: Undefined variable: pageFilename: controllers/xixi.phpLine Number: 43
如果你带参数是可以正确访问的。
这是什么问题,有点想不通。

Closer 发表于 2014-12-18 16:42:55

dolphin 发表于 2014-12-18 16:21
谢谢大神指点。

当场在看这段文档的时候没有注意到。


因為你的 page 是用 GET 方式傳
只要用了 ?c=&m= 這種方式
以往的 / 傳參數就會失效

dolphin 发表于 2014-12-18 16:46:25

Closer 发表于 2014-12-18 16:42
因為你的 page 是用 GET 方式傳
只要用了 ?c=&m= 這種方式
以往的 / 傳參數就會失效


那这里应该如何处理?

使用查询字符串后

应该如何传递函数的参数呢?

Closer 发表于 2014-12-18 16:49:14

dolphin 发表于 2014-12-18 16:46
那这里应该如何处理?

使用查询字符串后

網址列用 &page=4 的方式
就用 GET 方式接值

//第二參數用來開啟 XSS 過濾,或在 config.php 內開啟全域的 XSS 過濾
$page = $this->input->get('page', TRUE);

dolphin 发表于 2014-12-18 16:49:49

Closer 发表于 2014-12-18 16:42
因為你的 page 是用 GET 方式傳
只要用了 ?c=&m= 這種方式
以往的 / 傳參數就會失效


我修改为


echo $_GET['page'];



可以得到传入的值了。

Closer 发表于 2014-12-18 16:51:07

dolphin 发表于 2014-12-18 16:49
我修改为




建議能不用就不用原生的 GET 方式
因為 CI 有提供 XSS 過濾防止攻擊
不用白不用 XD

dolphin 发表于 2014-12-18 16:51:45

Closer 发表于 2014-12-18 16:51
建議能不用就不用原生的 GET 方式
因為 CI 有提供 XSS 過濾防止攻擊
不用白不用 XD ...

好的 谢谢解答。
页: [1]
查看完整版本: CodeIgniter能选择不是有伪静态么?