2012-05-28 1 views
0

Нужна помощь, я хочу создать кэширование доступа изображения, пример изображения на URLHtaccess и кэширование изображений

example.com/caching/m_images.jpg

, если этот образ существует, то показать изображение , но если не существует, может быть, с .htaccess скрипт, чтобы запустить функцию изображения на:

example.com/recaching/m_images.jpg

Чтобы создать новое изображение с нестандартным размером в папке caching, затем снова получите URL-адрес изображения. Как это сделать, или есть другое лучшее решение? Спасибо.

ps У меня уже есть небольшой скрипт htaccess для удаления 'index.php?' от CodeIgniter URL

RewriteEngine on 
RewriteCond $1 !^(index\.php|js|css|caching) 
RewriteRule ^(.*)$ index.php/$1 [L]

поэтому реальный URL функции является:

example.com/index.php?recaching/m_images.jpg

ответ

1

Как насчет:

RewriteEngine on 
RewriteRule ^images/(.*)$ index.php/recaching/$1 [L,QSA] 
RewriteCond $1 !^(index\.php|js|css|caching) 
RewriteRule ^(.*)$ index.php/$1 [L] 

вышеуказанный «должен» (я его не тестировал) перенаправляет любые запрошенные файлы внутри папки изображений (предположим у вас есть папка с изображениями) и передает путь к маршруту.

Затем вы можете использовать file_exists, readfile и header напишите файл браузеру, если он не существует.

т.е.

function recaching($path) 
{ 
    $tmpPath = FCPATH . 'images/' . $path; 
    if(!file_exists($tmpPath)) 
    { 
     // change $tmpPath to a file that exists, i.e. a 404 image 
     // or if you are generating an image when one doesn't exist 
     // create it here. 
    } 
    $info = getimagesize($tmpPath); 
    if($info !== false) 
    { 
     header('content-type: ' . $info['mime']); 
     readfile($tmpPath); 
    } 
    else 
    { 
     die('There was a problem rendering the image.'); 
    } 
} 
+0

спасибо, извините поздно обновить .. – timenz