用户
 找回密码
 入住 CI 中国社区
搜索
查看: 3000|回复: 9
收起左侧

[已解决] CI框架能实现这样的拟静态吗

[复制链接]
发表于 2012-4-4 21:29:15 | 显示全部楼层 |阅读模式
CI框架能实现这样的拟静态吗  /controller/action/id_3213.html 这样的

如果不能apache要如何做
发表于 2012-4-5 04:45:08 | 显示全部楼层
本帖最后由 actionbi 于 2012-4-5 04:47 编辑

可以的。你自定义一个正则表达式路由规则就行啦。下面是手册的连接。
http://codeigniter.org.cn/user_guide/general/routing.html


我自己本地测试的结果:

我在本地的routes.php中添加一条
路由规则有问题不完整,因为我纯为了实现效果。如果要用于生产环境,还要修改
PHP复制代码
 
$route['([a-z]+)/([a-z]+)/id_(\d+).html'] = "$1/$2/id_$3";
 
复制代码


welcome/index函数里面直接打印接收的参数。



PS:  CI的路由功能很强大。
发表于 2012-4-5 10:07:19 | 显示全部楼层
还有一种办法,步骤:
1,先用.htacess去掉index.php
2.配置CI的后缀为.html即可
发表于 2012-4-5 10:17:50 | 显示全部楼层
本帖最后由 大道达人 于 2012-4-5 10:33 编辑

你请求的URL是
/controller/action/id/3213
跳转成 /controller/action/id_3213.html  ?还是/controller/action/3213?
发表于 2012-4-5 10:39:05 | 显示全部楼层
actionbi 发表于 2012-4-5 04:45
可以的。你自定义一个正则表达式路由规则就行啦。下面是手册的连接。
http://codeigniter.org.cn/user_guid ...

hi你的路由正则配置有误哦。
id_(d+)实际什么也没执行. 你用 (d+) 和()得到的都是 id_xxx.html
而不是楼主想要的 xxx
应该是笔误~

id_(\d+)就ok了
发表于 2012-4-5 15:12:49 | 显示全部楼层
本帖最后由 actionbi 于 2012-4-5 17:03 编辑
大道达人 发表于 2012-4-5 10:39
hi你的路由正则配置有误哦。
id_(d+)实际什么也没执行. 你用 (d+) 和()得到的都是 id_xxx.html
而不是楼 ...
PHP复制代码
(\d)
复制代码

我输入的是(\d),结果反斜杠被和谐了
发表于 2012-4-5 15:40:56 | 显示全部楼层
actionbi 发表于 2012-4-5 15:12

(d)是什么意思~
发表于 2012-4-5 17:03:09 | 显示全部楼层
大道达人 发表于 2012-4-5 15:40
(d)是什么意思~

我输入的是(\d),结果反斜杠被和谐了。论坛编辑器的问题。过滤掉了
发表于 2012-4-6 11:27:09 | 显示全部楼层
手册手册啊
发表于 2012-4-13 11:24:39 | 显示全部楼层
你的问题解决了没?

本版积分规则