QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1491|回复: 1

RewriteRule里如何传递参数?

[复制链接]
发表于 2006-5-13 19:35:29 | 显示全部楼层 |阅读模式
大家好,我是新手,我有个难题希望得到大家的帮助。
我换了服务器,我希望把原来的/article.asp?id=1 重写成/?p=1
这个变量如何传递过去?
我不知道如何用正则表达式来描述这个RewriteRule,我用了很多办法都不有成功递id的值到p,请问下面的RewriteRule错在哪里?请指点.
[code:1]RewriteEngine On
RewriteBase /weblog/

# Rewrite www.domain.com to domain.com
RewriteCond %{HTTP_http://www.zuola.com/weblog} ^www\.(.*)
RewriteRule ^(.*) http://%1/$1 [R,L]


###
#### rewrite article and feed
###
RewriteRule ^article\.asp\?id=(.*) /weblog/?p=$1 [L]
RewriteRule ^feed\.asp\?cat=(.*) /weblog/?feed=rss2&cat=$1 [L]
[/code:1]
我不知道如何在RewriteRule中传递参数,我希望别人访问http://www.zuola.com/weblog/article.asp?id=1 是得到http://www.zuola.com/weblog/?p=1 的效果,这个参数如何传递过去呢?我Google了三个多钟头,还是没有发现类似的解决办法,倒是说如何把动态页面通过rewrite来实现静态页面来讨好搜索引擎的办法介绍了很多。我怎么模仿都没弄成,谁会正则表达式,指点我一下吧。谢谢了。

如果方便,请到http://www.zuola.com/weblog/?p=456 留言给我。谢谢。
 楼主| 发表于 2006-5-13 20:09:34 | 显示全部楼层
据说RewriteRule的顺序很重要,我把这个.htaccess里的全文贴出来吧,用#号注释了的语句是会引发500错误的句子,其它句子都能正常工作。

[code:1]
RewriteEngine On
RewriteBase /weblog/

# Rewrite www.domain.com to domain.com
RewriteCond %{HTTP_http://www.zuola.com/weblog} ^www\.(.*)
RewriteRule ^(.*)       http://%1/$1 [R,L]


###
#### article and feed
###


#RewriteRule ^article\.asp\?id=(.*)                 /weblog/?p=$1 [L]
#RewriteRule ^default\.asp\?id=(.*)                 /weblog/?p=$1 [L]
#RewriteRule ^feed\.asp\?cat=(.*)                 /weblog/?feed=rss2&cat=$1 [L]
#RewriteRule ^feedrss2\.asp(.*)                 /weblog/?feed=rss2&$1 [L]
#RewriteRule ^feed\.asp\?q=comment&cat=(.*)                 /weblog/?feed=rss2&p=$1 [L]

RewriteRule ^article.asp                 /weblog/ [L]
RewriteRule ^default.asp                 /weblog/ [L]
RewriteRule ^feed.asp                 /weblog/?feed=rss2 [L]
RewriteRule ^feedrss2.asp                 /weblog/?feed=rss2 [L]
[/code:1]
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-2 16:34 , Processed in 0.055115 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表