重写规则正确处理?-sign

Tes*_*son 1 php regex apache url-rewriting cherokee

使用切诺基网络服务器重写时,我遇到了一个烦人的问题.

我想转换:

http://example.com/mypage.phtml?cmd=print
=> to =>
http://example.com/index.php?page=mypage&cmd=print
Run Code Online (Sandbox Code Playgroud)

问题是,这个? - 标志着弄脏了cmd;

$_GET : array('page'=>'mypage', '?cmd'=>'print')
Run Code Online (Sandbox Code Playgroud)

切诺基配置有:

regexp: ^/(.*)\.phtml(.*)$
internal subst: /index.php?page=$1&$2
Run Code Online (Sandbox Code Playgroud)

所以我的问题是:如果存在问题,如何最好地"吃掉"问号.

问候,

//泰森

Tim*_*ker 5

在捕获括号之前尝试显式匹配:

regexp: ^/(.*)\.phtml\??(.*)$
Run Code Online (Sandbox Code Playgroud)

\?是文字?,以下?表示"匹配0或1次".