我正在寻找重写多个子字符串的网址。一个子字符串被请求作为一个子目录,而另一个被请求作为正常的查询字符串参数。mod_rewrite规则匹配问号正则表达式
例如,我想从
http://www.mysite.com/mark/friends?page=2
重写URL到
http://www.mysite.com/friends.php?user=mark&page=2
我能够用问号字符除外做到这一点。这是我的重写规则:
...
RewriteEngine On
RewriteBase/
RewriteRule ^([A-Za-z0-9-_]+)/friends[?]?([^/\.]+)?$ friends.php?user=$1&$2 [L]
如果我将问号更改为任何其他字符,它的效果很好。看来问题在于'?'字符被错误地解释为新的查询字符串的开始。
我需要传递出现在/ user/friends之后的任何参数。我该如何做到这一点?
感谢您的回答。工作得很好&我现在正在阅读食谱。 – markb 2009-05-05 12:56:55
超级解决方案,它也适用于我,虽然我编辑了我的条件代码:RewriteRule ^([A-Za-z0-9 -_] +).php? pindex.php?typeofpage = $ 1 [QSA,L] – 2016-07-11 14:23:55