URL重写帮助

时间:2011-07-22 14:26:37

标签: apache mod-rewrite

我遇到了一些网址重写问题。

RewriteRule ^(userratings)/(.*)$ /user_rating.php?userId=$2 [L]

这对我有用。

我也想添加第三个变量。但也可能存在或不存在。

RewriteRule ^(userratings)/(.*)/(.*)$ /abc.php?userId=$2&product=$3 [L]

但最后/(.*)可以存在或不存在。那么我如何为这样的条件写出来呢?

1 个答案:

答案 0 :(得分:2)

这条规则可以胜任:

RewriteRule ^userratings/([^/]+)(/(.*))?$ /abc.php?userId=$1&product=$3 [QSA,L]

测试示例:

  • /userratings/12345/hello将被重写为/abc.php?userId=12345&product=hello
  • /userratings/12345将被重写为/abc.php?userId=12345&product=

这意味着,如果URL路径中的第3个参数不存在,则product=的值将为空字符串。