-
七 25
-
今天碰到了一个Apache的重写url的问题,需求是这样的,把
/abc/hello.html?page=2
rewrite成
/search.php?key=hello&page=2
我自己尝试写规则如下
^abc/(.+)\.html\?page=([0-9]+)$ /search.php/?key=$1&page=$2
这个规则怎么尝试都无法成功,就是不能匹配上那个问号.
实在搞不定只好利用网络请教高手了,记录过程如下
1.先到我加的几个qq群里问,自认为这种方式较快,因为这些qq群在线都是好几十人,随便碰到个会的就帮我搞定了.结果让我很失望,发了4个qq群,只有一个群里得到了答复,而且答案跟我的写法一样.
2.到百度知道提问,一个小时后得到一个答复跟我自己写的一样,仍然没搞定.
3.到国内一个很大的论坛发贴求助,只有一个人答复 "你悬偿点分嘛..重赏之下,必有勇夫",我以为帮助别人即使没有所谓的"分"也很快乐.
4.转战国外论坛,在webmasterworld以interrogation rewrite 为关键字搜索到了www.webmasterworld.com/apache/3375528.htm,虽然没有找到我要的答案,但是知道了apache的rewrite有个叫query_string的东西
5.在百度以关键词query string rewrite搜索到了我想要的结果http://stauren.net/log/4b8atjdnw.html 说白了就是一个参数的问题那就是[L,QSA]
摘抄一段那位网友的文章
RewriteEngine on # Rewrite current-style URLs of the form 'index.php?q=x'. RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?q=$1 [L,QSA] 第1行: 如果服务器加载了rewrite模块,则执行如下规则
第2行: 打开改写引擎,不用动,加上就好。
第3行: 注释
第4行: RewriteCond 表示这是应用改写规则的条件,%{REQUEST_FILENAME}表示对请求的文件完整url进行判断,-f是表示这是普通文件,!表示非。这句的意思就是,如果请求的不是普通文件,则对url进行改写。
第5行: 基本同第4行,-d的意思是文件夹
第 6行:RewriteRule 表示这是改写规则,^(.*)$是一个正则,表示整个请求的url(在RewriteBase 之后的),index.php?q=$1是改写的样式。这里可能需要对正则熟一点才能看懂了。最后的[L,QSA]是flag,标志。L表示是last,针对这个url的最后一次改写,不再应用其他rule,QSA表示query string append,将查询字串加入原有查询字串之后。
一点感慨,国内的论坛交流分享的氛围远远不及国外的论坛,看看webmasterworld的回帖基本上就是一篇文章.
想到了一个小笑话:
一日早朝,王安石出列:“臣有奏,OOXX(以下省略1万字)。”刚说完身后跪下一片叫到:“臣沙发”“臣板凳”“臣地板”“臣顶”“臣也顶”……最后几人面带笑容不语,神宗见状怒击龙椅:“不许纯表情回帖。”
1 楼 jean(http://www.zhangyiqun.cn)
Post: 2009-09-01 11:20 下午
今天遇到同样的问题了。来交流下。
要把http://www.xxx.com/Lottery06/SSQ7LC/index.php?LotteryType=SSQ 变成
http://www.xxx.com/Lottery06/SSQ7LC/
下面是我的写法,
RewriteCond %{REQUEST_URI} ^/Lottery06/SSQ7LC/(.*)$ [NC]
RewriteCond %{QUERY_STRING} ^(LotteryType=SSQ)$ [NC]
RewriteRule ^(.*)$ http://www.okooo.com/Lottery06/SSQ7LC/ [R=301,L,QSA]
不过没有成功,比较郁闷
2 楼 老余(http://laoyu.info)
Post: 2009-09-02 9:50 上午
@jean:
Lottery06/SSQ7LC/这个路径本身是存在的啊,访问它就是访问http://www.xxx.com/Lottery06/SSQ7LC/index.php了吧,那后面的参数就没有用了
3 楼 jean(http://www.zhangyiqun.cn)
Post: 2009-09-02 10:43 上午
对,虽然没用但是仍然不想让它显示,seo有需求。
4 楼 老余
Post: 2009-09-02 10:48 上午
@jean
好办,不需要rewrite,在index.php里把LotteryType设定一个值
然后页面上直接写成http://www.xxx.com/Lottery06/SSQ7LC/就可以了
5 楼 jean(http://www.zhangyiqun.cn)
Post: 2009-09-02 11:23 上午
改代码不现实,研发要走一堆流程,我再研究下rewrite
6 楼 收购氯化银(http://www.wuyao.com)
Post: 2009-11-13 8:26 下午
可以交换链接吗?本站是回收银浆,收购银废料及回收黄金白银的,目前PR为3,如有意,可以做上后到我站留言,第一时间马上帮您做好!谢谢。
7 楼 QQ农场外挂(http://www.00175.com/)
Post: 2009-11-18 7:56 下午
已经达到忘我的境界了,呵呵
8 楼 阿迪达斯鞋(http://www.xie6.com)
Post: 2010-01-16 6:17 下午
留个脚印
9 楼 武汉论坛(http://www.wuhan001.com)
Post: 2010-01-16 6:46 下午
好热闹
10 楼 攻略秘籍(http://www.zhaogl.com/)
Post: 2010-01-20 12:57 下午
留个脚印,新年快乐.
11 楼 bt核工厂(http://www.bthegongchang.com/)
Post: 2010-01-26 3:17 下午
看到喜欢的了— 谢谢 –~
12 楼 淘宝网网上购物女裤(http://www.taobao15.com/2160)
Post: 2010-01-27 11:44 上午
马上就要过年了。支持一下啊
13 楼 AlisonVelez26(http://www.bestfinance-blog.com)
Post: 2011-09-20 9:00 上午
Do you recognize that this is the best time to get the home loans, which will make you dreams real.
14 楼 mortgage loans(http://goodfinance-blog.com)
Post: 2012-02-20 1:36 下午
I strictly recommend not to hold back until you get enough cash to buy all you need! You can just take the personal loans or just student loan and feel yourself fine