带有查询字符串的图像的 mod_rewrite 规则

带有查询字符串的图像的 mod_rewrite 规则

我是 mod_rewrite 新手和正则表达式菜鸟,但这是我想做的事情:

我有一个脚本可以动态调整图像大小。我希望能够获取任何图像文件路径,向其添加查询字符串,然后将其自动发送到脚本进行处理。

因此类似于:

from: http://mysite.com/images/logo.jpg?w=100&h=50 
to:   http://mysite.com/images/thumbs/phpThumb.php?src=logo.jpg&w=100&h=50

当然,如果没有指定查询字符串,它应该只是指向原始文件。

使用.htaccess/images 中的文件,我得到了这个。但它根本不起作用。或者充其量,它破坏了我所有网站的图像:

 <IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{QUERY_STRING} ^.*
    RewriteRule ([^\s]+(\.(?i)(jpg|png|gif|bmp))$) /thumbs/phpThumb.php?src=$1 [L,QSA]
 </IfModule>

答案1

第一的添加重写库,这将删除/images/查询字符串中的部分。您将得到photo.jpg?w=...而不是/images/photo.jpg?w=...

第二添加/images/到重定向,因为您当前的重定向告​​诉转到http://mysite.com/thumbs/phpThumbs...而不是http://mysite.com/images/thumbs/phpThumbs...

结果是这样的:

 <IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteBase /images/
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{QUERY_STRING} ^.+
    RewriteRule ([^\s]+(\.(?i)(jpg|png|gif|bmp))$) /images/thumbs/phpThumb.php?src=$1 [L,QSA]
 </IfModule>

相关内容