在.htaccess中添加RewriteRule的奇怪行为

时间:2011-04-06 19:45:04

标签: php regex apache .htaccess

我有以下规则:


  RewriteRule ^(image/[0-9]*/(.*))?$ image.php?prettyUrl=true&nav=$1 [QSA,NC,L]

这应该取代


  http://mysite.com/image/12345/imagename.png => http://mysite.com/image.php?pretyUrl=true&nav=image/12345/imagename.png

对于漂亮网址包含'/ image /'的特殊情况,$ _GET数组为空。如果我使用不同的名称,如'images'或'asdfg',$ _GET数组将同时包含pretyUrl和nav。

知道为什么吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

如果重写规则必须适用于image/中的每个网址,(并且不需要/1234/数字部分),那么这可能就是您要查找的内容:

RewriteRule ^(image(/.*)?)$ image.php?prettyUrl=true&nav=$1 [QSA,NC,L]

如果您可以更具体地说明您的问题,可以改进更好的解决方案。