把book.php?id=311重定向到新地址book/id/311的方法
把网站老的程序用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。
做到以前三点,目的就达到了。
router.php 感谢分享!其实扩展下router.php也是可以的 hex,同样需求,routes.php里面怎么写,愿闻其详。 相知犹按剑 发表于 2013-2-1 21:01 static/image/common/back.gif
hex,同样需求,routes.php里面怎么写,愿闻其详。
愿闻其祥
页:
[1]