使用mod_rewrite获取URL参数

时间:2011-08-10 21:28:03

标签: apache .htaccess

这是我目前的重写规则

RewriteRule ^page/([^/\.]+)/?$ index.php?page=$1 [L]
RewriteRule ^post/([^/\.]+)/?$ index.php?post=$1 [L]
RewriteRule ^cat/([^/\.]+)/?$ index.php?cat=$1 [L]
三行做基本相同的事情。有没有办法可以清理一下这个?是否有一条线可以实现这一目标?

另外,有没有办法从单个url字符串中提取多个变量?所以,如果我有类似的东西:

http://www.mysite.com?page=foo&id=123&color=red

我将如何将其转换为:

http://www.mysite.com/page/foo/id/123/color/red

2 个答案:

答案 0 :(得分:0)

RewriteRule ^(cat|post|page)/([^/\.]+)/?$ index.php?$1=$2 [L]

答案 1 :(得分:0)

因为jacek_K给你一部分,我给你回答第二部分: 要重写此网址(http://www.mysite.com/page/foo/id/123/color/red),请使用:

RewriteRule ^page\/([^/\.]+)\/id\/(\d+)\/color\/([^/\.]+)   index.php?page=$1&id=$2&color=$3 [L]