正则表达式正在删除最后一个字符

时间:2013-05-04 06:19:13

标签: regex apache mod-rewrite clean-urls

在实施干净的网址时,我想使用以下正则表达式将http://www.pikspeak.com/iframe/3/bird?autoplay=true映射到http://www.pikspeak.com/iframe.php?id=3&img=bird&autoplay=true

RewriteRule ^/iframe/([^/\.]+)/([^/\.?]+)\\?([^/\.]+) /iframe.php?id=$1&img=$2&$3

但问题是img获取参数(在此'鸟'中)的值的最后一个字符被删除,即'bir'。 你能帮忙解决这个问题。

除此之外,我也无法在php中获取'autoplay'参数。

提前致谢

1 个答案:

答案 0 :(得分:1)

  1. 我认为\\?你的意思是\?
  2. 无需在字符类中转义\.
  3. 请使用[QSA]修饰符。
  4. ,而不是尝试匹配查询字符串
    RewriteRule ^/iframe/([^/.]+)/([^/.]+)$ /iframe.php?id=$1&img=$2 [QSA]