【问题标题】:rewrite-rule to properly handle ?-sign重写规则以正确处理 ?-sign
【发布时间】:2010-12-14 14:17:41
【问题描述】:

我在使用 cherokee web-server 重写时遇到了一个烦人的问题。

我要转换:

http://example.com/mypage.phtml?cmd=print
=> to =>
http://example.com/index.php?page=mypage&cmd=print

问题是 ? 符号弄乱了 cmd;

$_GET : array('page'=>'mypage', '?cmd'=>'print')

Cherokee 配置有:

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

所以我的问题:如何最好地“吃掉”问号如果存在

问候,

//特森

【问题讨论】:

    标签: php regex apache url-rewriting cherokee


    【解决方案1】:

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

    regexp: ^/(.*)\.phtml\??(.*)$
    

    \? 是文字?,后面的? 表示“匹配0 次或1 次”。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-06-13
      • 2013-04-19
      相关资源
      最近更新 更多