Chinaunix

标题: 可以耐心的看完吗,一个rewrite[已解决] [打印本页]

作者: gogo407    时间: 2006-10-10 11:34
标题: 可以耐心的看完吗,一个rewrite[已解决]
今天被一个rewrite郁闷了
http://www.examplecom/gogo/b/955?page1=1&page2=2
rewrite成
http://www.example.com/main.php?var=gogo&var1=a&var2=b&id=955&page1=1&page2=2
我是这样写的
  1. RewriteRule ^/gogo/([a-zA-Z0-9\-_]+)/([a-zA-Z0-9\-_]+)\?([a-z0-9\=]+)&([a-z0-9\=]+)$                           /main.php?var=gogo&var1=$1&var2=$2&$3&$4 [L]
复制代码

问题就是我问号后面的参数带不进去!
不管我输入的是http://www.examplecom/gogo/b/955?page1=1&page2=2
还是http://www.examplecom/gogo/b/955?page1=1&page2=3
停留在一个页面
手册什么都找了,也许是没吃早饭的原因
硬是不晓得问题出在什么地方
谢谢

[ 本帖最后由 gogo407 于 2006-10-17 17:05 编辑 ]
作者: gogo407    时间: 2006-10-10 14:10
晕。。。。。。。。
不想沉得太快了
作者: leaner    时间: 2006-10-10 15:56
你可以开起调试日志看看
RewriteLog logs/rewrite
RewriteLogLevel 3
可以知道
apache的rewrite地址是不带参数的 怎么在apache中处理这部分参数我也没有深入了解
你以在main.php中处理通过$_SERVER['REQUEST_URI']得到?号后面的参数
再parse_str 后就可以用了
作者: foolkaka    时间: 2006-10-11 17:09
后面参数多加一个 ,QSA
我头两天搜索到的~ 对这个不了解~ 当时也只有一个 L 参数不行 后来改成 [L,QSA] 就可以了~
希望了解这方面的人给解释一下,谢谢。
作者: gogo407    时间: 2006-10-12 09:49
谢谢楼上的兄弟了,我前些时候需要做这个!后来莫名其妙的发现了这个问题
我等会好好测试了楼上两位的建议
thx very much
得到人帮助的感觉真的是很好:)
'qsappend|QSA' (追加请求串 query string append)
此标记强制重写引擎在已有的替换串中追加一个请求串,而不是简单的替换。 如果需要通过重写规则在请求串中增加信息,就可以使用这个标记。

[ 本帖最后由 gogo407 于 2006-10-18 13:36 编辑 ]
作者: gogo407    时间: 2006-10-17 10:07
标题: 谢谢foolkaka leaner
加上[QSA]后可以了
QSA 是query string append的缩写
这个手册上是有的...只怪我学艺不..............
问题解决了,最后还是谢谢大家
代码如下
/../../..?(.*)           /../../..&$4  [QSA,L]  
最后谢谢大家,这样就可以把问号后面的作为一个参数传过来
作者: jackylau    时间: 2006-10-31 13:30
这个rewrite有没有一个较详细的用法,比方说他的正则表达式,那些.是啥意思




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2