Rewrite后取值的问题
RewriteCond $1 !^(1\.php)RewriteRule ^(.*)1\.php?(.*)$ /a/b?$2
执行 1.php?xx=123Rewrite到 /a/b?xx=123
$this->input->get('xx');取不出值那位高手帮忙给看看 谢谢 :) CI 默认不支持 GET 传参。
如果要打开,请参考FAQ置顶帖。 这个问题的关键是?后面的参数的取值问题,我今天刚刚研究出来。贴出我的帖子内容,参考一下吧。
把网站老的程序用CI重写了一遍,因为CI的地址习惯很符合我的胃口,所以就用book/id/311这样的地址来显示我的商品信息。
但是,之前很多人微博推广或者是引用的时候,都是用类似于book.php?id=311这样的格式,我该怎么办呢。
直接Apache的rewrite可以搞定,但是直接写RewriteRule 发现$1无法把参数值311带过去,经过互联网搜索终于找到了方法。以下是具体配置
RewriteEngine On
RewriteCond %{QUERY_STRING} ^id=(+)$
RewriteRule /book.php /book/id/%1
复制代码
上面配置的要点有三个
1、要用RewriteCond 你可以把它理解为PHP的if语句
2、要知道QUERY_STRING是啥,在普通地址里面 ?后面那一串都是,例如book.php?id=311的QUERY_STRING结果就是 id=311
3、在RewriteRule里面,要引用我们的参数值311,就要用 %1 注意不是 $1。
做到以前三点,目的就达到了。
页:
[1]