Назад | Перейти на главную страницу

Правило 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>

Первый добавить RewriteBase, это лишит /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>