Mod-Rewrite

帶有查詢字元串的圖像的 mod_rewrite 規則

  • July 23, 2010

我是 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>

首先添加一個RewriteBase,這將刪除/images/查詢字元串中的部分。你會得到photo.jpg?w=...而不是/images/photo.jpg?w=....

第二個添加/images/到重定向,因為您目前的重定向告​​訴 go tohttp://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>

引用自:https://serverfault.com/questions/163526