2014-11-15 60 views
1

我實現了一個保存最終文件的圖像生成器。 jpg格式裏面/images。一旦文件被保存,就不需要再次生成它根據文件存在通過.htaccess重定向圖像請求

這是圖像生成路線:

/gen.php?id=495abc 

這是目錄,所有的。 JPG圖像保存:

/images/495abc.jpg 

因此,其目標是:如果用戶試圖請求http://website.com/images/495abc.jpg,將.htaccess規則必須驗證該文件是否存在,然後再執行的根據的情況下,兩個操作之一:

  1. 如果。 jpg存在,直接服務文件。

  2. 如果。 JPG確實不存在,重定向在/gen.php?id=495abc請求到所述發電機(新的圖像將在此過程中的與Header("Content-Type: image/jpeg")結束處要顯示)

那是可行經由htaccess的?如果沒有,還有另一種選擇:將所有/images/*.jpg請求重定向到/gen.php?id=*,並讓gen.php做所有的骯髒工作。當然,第一種選擇是更好的。

任何想法?謝謝!

回答

4

是的。這是可能的htaccess

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^images/(\d+)\.(jpe?g|png|gif|ico|bmp)$ /gen.php?id=$1 [L,NC] 
+0

我試着你的解決方案,它不工作,我只是明白了爲什麼。該ID不一定只是一個數字,它可以包含字母數字字符(md5值)。在這種情況下,** d **值應該是多少? – andufo

+0

@andufo'[a-z \ d]' – hjpotter92

+0

謝謝!現在正在工作。 – andufo