\ Лично я бы делегировал эту задачу сценарию (возможно, с использованием X-Sendfile), а не переписывающему беспорядку.
Здесь вы, возможно, придется настроить корневой документ и сделать вашчасть "profile" более общая:
RewriteEngine on
RewriteCond %{QUERY_STRING} "(?:^|&)crop&p=50"
RewriteCond %{REQUEST_URI} ^(/img/profile)(\.png)$
RewriteCond /your/document/root%1.c.50%2 -f
RewriteRule ^ %1.c.50%2 [L]
# hand over to crop script if the above doesn't match
RewriteCond %{REQUEST_URI} =/img/profile.png
RewriteRule ^ /cropper.php?path=%{REQUEST_URI}&p=50 [L]
Решение, всегда включающее скрипт: (доступ к которому осуществляется через / img / Profiles / ... для ясности)
- $ 1 фиксирует имя профиля (в данном случае предполагается, что только 'az'
- $ 2 фиксирует желаемую ширину
- $ 3, расширение файла
, что действительно упрощаетпереписать:
RewriteEngine on
RewriteRule ^/img/profiles/([a-z]+)\.([1-9][0-9]+)\.(jpe?g|gif|png)$ /cropper.php?profile=$1.$3&p=$2 [L]
Сценарий проверит, существует ли файл, и либо доставит его, либо сгенерирует его первым.
Решение, взяв имя изображения из запрошенного URL:
(как вы упомянули в своем комментарии)
RewriteEngine on
RewriteCond %{REQUEST_URI} ^(/img/profile)\.([1-9][0-9]+)\.(png|gif|jpe?g)$
RewriteCond /your/document/root%{REQUEST_URI} -f
RewriteRule ^ %{REQUEST_URI} [L]
# hand over to crop script if the above doesn't match
RewriteCond %{REQUEST_URI} ^(/img/profile)\.([1-9][0-9]+)\.(png|gif|jpe?g)$
RewriteRule ^ /cropper.php?path=$1.$3&p=$2 [L]
, который может быть переписан следующим образом, если изображения хранятся непосредственно в корневом каталоге вашего документа:
RewriteCond %{REQUEST_URI} ^(/img/profile)\.([1-9][0-9]+)\.(png|gif|jpe?g)$
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-f
RewriteRule ^ /cropper.php?path=$1.$3&p=$2 [L]