Я новичок в 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>