2012-03-26 72 views
0

在我的網頁我有這樣的圖片鏈接:如何用mod_rewrite更改圖片文件夾?

img/123456765/mypicture.jpg (<img src="img/123456765/mypicture.jpg" />) 
img/2534/anotherpicture.jpg 

其中編號的文件夾是圖像文件的上次更改時間,以秒例如的strtotime(filemtime(mypicture.jpg))。它們是瀏覽器緩存刷新的虛擬路徑,而不是真實路徑。

我想Apache來自動更改那些鏈接到喜歡這些網址:

img/mypicture.jpg 
img/anotherpicture.jpg 

基本上,我想消除圖像路徑號的文件夾。

mod_rewrite的指令,我要建這個樣子的:

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^img/([a-zA-Z0-9-_]+)/\.(jpg|jpeg|gif|bmp|png)$ img/ [L] 

我是新來的mod_rewrite的,所以我不知道,如果這些指令是正確的。任何人都可以糾正我,如果我在這裏錯了嗎?我會很感激!謝謝!

回答

1

你在正確的軌道上,但是你想是這樣的:

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^img/[a-zA-Z0-9-_]+/(.*\.(jpg|jpeg|gif|bmp|png))$ img/$1 [L] 

正則表達式^img/[a-zA-Z0-9-_]+/(.*\.(jpg|jpeg|gif|bmp|png))$有一個反向引用($ 1)比賽.*\.(jpg|jpeg|gif|bmp|png),數字和字母后面的字符串之後基本上什麼「img /」。這將重寫:

img/123456765/mypicture.jpg to img/mypicture.jpg 
img/2534/anotherpicture.jpg to img/anotherpicture.jpg 
+0

非常感謝,喬恩!它對我非常有幫助! ^^ – Ksenia 2012-03-26 18:09:18