Я предполагаю, что ваш реальный путь - это пользователь/выгрузка, и вы хотите, чтобы это было как в корневом каталоге (имеет смысл для меня). В противном случае просто измените пути.
Я думаю, что это сделало бы трюк.
RewriteRule ^([^\.]+)\.(jpg|gif|png)$ http://domain.com/user/upload/$1.$2 [NC,L]
или, также это:
RewriteRule ^(.+?)\.(jpg|gif|png)$ http://domain.com/user/upload/$1.$2 [NC,L]
У вас нет строки запроса, чтобы передать QSA (например:? ?id=5&name=myname
, после того, как это строка запроса).
EDIT:
В случае, если вы хотите сохранить перезаписи URL для удаленного перенаправляет лучше переадресовать все матчи на локальный файл, например: remoteimage.php: (.? +).
RewriteRule^(JPG | GIF | PNG) $ remoteimage.php имя_файла = $ 1 & расширение = $ 2 [NC, L]
Этот файл будет читать файл и будет отправить его в браузер ...
что-то? например:
<?php
// Remote image
$filename = $_GET['filename'];
$ext = $_GET['extension']; // Of course you will need some validations, etc.
header('Content-type: image/' . ($ext != 'jpg' ? $ext : 'jpeg'));
// This is the idea, you could use cURL, fopen, etc. and you probably need to validate response status code and received data
$image = file_get_contens("http://domain.com/user/upload/{$filename}.{$extension}");
echo $image;
?>
Если вы используете некоторые фреймворки, такие как codeigniter, kohana и т. д., возможно, вам придется попробовать поймать чтение.
Согласно вашему правилу, похоже, вы хотите нанести на карту это: 'domain.com/12345.jpg' на это:' domain.com/user/upload/12345.jpg', а не наоборот, как вы говорите в вопросе. Было бы разумно, поскольку более короткий и «симпатичный» URI является первым, первым. –
Вы правы, я хочу нанести на карту этот 'domain.com/12345.jpg' на это:' domain.com/user/upload/12345.jpg. Может быть, я не совсем правильно объяснил это. – Paul