我遇到了一些网址重写问题。
RewriteRule ^(userratings)/(.*)$ /user_rating.php?userId=$2 [L]
这对我有用。
我也想添加第三个变量。但也可能存在或不存在。
RewriteRule ^(userratings)/(.*)/(.*)$ /abc.php?userId=$2&product=$3 [L]
但最后/(.*)
可以存在或不存在。那么我如何为这样的条件写出来呢?
答案 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=
的值将为空字符串。