.htaccess,mod_rewrite,带有目录和文件类型的正则表达式

时间:2011-11-09 04:45:31

标签: regex .htaccess mod-rewrite

我想在以下条件下进行重写:

  1. 目录是/ images
  2. 文件的扩展名为.jpg,.png或.gif
  3. 我想重定向到以下

    /images/?file=filename.extension
    

    这不起作用:

    RewriteRule /images/(.*\.jpg|png|gif) /images/?file=$1
    

    示例:

    /images/example.jpg => /images/?file=example.jpg

    由于

2 个答案:

答案 0 :(得分:0)

我认为你需要parens来分组扩展。

/images/(.*\.(jpg|png|gif))

答案 1 :(得分:0)

在.htaccess文件中,路径被删除了前导斜杠,因此您需要以images/而不是/images/开头。此外,您可以从^开始,以匹配路径的开头,以便不会重写/blahblah/images/something.gif之类的路径。最后,您的paren将与foo.jpg匹配,但不会与foo.pngfoo.gif匹配。试试这个:

RewriteRule ^images/(.+\.(jpg|png|gif)) /images/?file=$1