Как переписать TimThumb для использования в электронных письмах

На моем сервере я использую TimThumb в качестве плагина для изменения размера моих изображений, он прекрасно работает, за исключением случаев, когда я пытаюсь использовать его в содержимом моих электронных писем.

Google Gmail выводит это https://example.com/thumb.php?sr+c= как src атрибут (обратите внимание на знак плюс).

Я читаю Вот что это из-за запроса.

Так как я могу использовать .htaccess переписать мой URL и удалить /thumb.php?src= с /src/?

Вот так выглядит ссылка на изображение:

https://example.com/thumb.php?src=example.jpg

Это то что мне нужно

https://example.com/src/example.jpg

Это мой ток .htaccess

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^welcome/([^/]+)/?$ index.php?a=welcome&filter=$1 [NC,QSA,L]
RewriteRule ^explore/([^/]+)/?$         index.php?a=explore&filter=$1   [NC,QSA,L]
RewriteRule ^page/([^/]+)/?$            index.php?a=page&filter=$1      [NC,QSA,L]
RewriteRule ^(([^/]+)+)(/([^/]{0,32})(/.+)?)?$ index.php?a=$1&q=$3 [L,QSA]

index.php а также thumb.php оба находятся в корневой папке

ОБНОВИТЬ

Я пытался добавить эту строку в мой .htaccess и посетить https://example.com/src/example.jpg но опять же он не работает, в этом случае он перенаправляет на страницу «приветствия».

RewriteRule ^src/([^/]*)$ /thumb.php?src=$1 [L]

2-е ОБНОВЛЕНИЕ

Я тоже попробовал это:

RewriteRule ^src/([^/]+)/?$ thumb.php?src=$1 [NC,QSA,L]

Опять не работает https://example.com/src/example.jpg перенаправляет на мою «приветственную» страницу.

Вот так теперь выглядит мой .htaccess

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^welcome/([^/]+)/?$ index.php?a=welcome&filter=$1 [NC,QSA,L]
RewriteRule ^explore/([^/]+)/?$         index.php?a=explore&filter=$1   [NC,QSA,L]
RewriteRule ^page/([^/]+)/?$            index.php?a=page&filter=$1      [NC,QSA,L]
RewriteRule ^src/([^/]+)/?$ thumb.php?src=$1 [NC,QSA,L]
RewriteRule ^(([^/]+)+)(/([^/]{0,32})(/.+)?)?$ index.php?a=$1&q=$3 [L,QSA]

3-е ОБНОВЛЕНИЕ

внутри thumb.php Вот как я строю запрос SRC

$_GET['src'] = 'https://s3-eu-west-1.amazonaws.com/bucket1'.'/'.$_GET['src'];

Я не могу понять, что здесь не так.

4-е ОБНОВЛЕНИЕ

Исходя из ответа Владимира Цветика, я попробовал это:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^src/(.*)$ /thumb.php?src=$1 [L,QSA]
RewriteRule ^welcome/([^/]+)/?$ index.php?a=welcome&filter=$1 [NC,QSA,L]
RewriteRule ^explore/([^/]+)/?$         index.php?a=explore&filter=$1   [NC,QSA,L]
RewriteRule ^page/([^/]+)/?$            index.php?a=page&filter=$1      [NC,QSA,L]
RewriteRule ^src/([^/]+)/?$ thumb.php?src=$1 [NC,QSA,L]
RewriteRule ^(([^/]+)+)(/([^/]{0,32})(/.+)?)?$ index.php?a=$1&q=$3 [L,QSA]

И снова это не работает, это ошибка:

`The 't' parameter is not set.`

Но это странно, поскольку я установил условие параметра t пустым, как показано ниже:

if(!empty($_GET['t'])) {
if($_GET['t'] == 'a') {
$type = 'uploads/avatars';
$width_list = array(25, 35, 50, 70, 100, 112, 150, 200, 300);
$height_list = array(25, 35, 50, 70, 100, 112, 150, 200, 300);
} elseif($_GET['t'] == 'b') {
$type = 'uploads/backgrounds';
...
} else {
exit('Invalid parameter value');
}
} else {
$_GET['t'] == 'a';
$type = 'uploads/avatars';
$width_list = array(25, 35, 50, 70, 100, 112, 150, 200, 300);
$height_list = array(25, 35, 50, 70, 100, 112, 150, 200, 300);
}

Действительно, если я приеду https://example.com/thumb.php?src=example.jpg Я вижу изображение аватара правильно

2

Решение

Это должно сделать трюк:
RewriteRule ^src/(.*)$ /thumb.php?src=$1 [L,QSA]

Насколько мне известно, TimThumb не поддерживается уже много лет и имеет проблему с безопасностью, которая позволит злоумышленникам выполнять код на вашем сервере. Быстрый поиск Гугл раскроет большинство уязвимостей TimThumb.

Я бы предложил перейти на обслуживаемый пакет.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]