2014-03-12 63 views
0

我的圖像結構是這樣的:htaccess的 - 重寫IMG路(含子目錄)

/uploads/middle/ex.png 
/uploads/thumb/ex.png 

,我將其更改爲:

/images/trees/ex_middle.png/images/trees/ex_thumb.png

如果我能這將是很好也可以這樣訪問它們:

/images/ex_middle.png/images/ex_thumb.png

這是可能的嗎?我想:

RewriteRule ^images/(.+)$ uploads/middle/$1 [NC,L] 
RewriteRule ^images/trees/(.+)$ uploads/middle/$1 [NC,L] 

,但這僅適用於一個路徑,我不知道如何重寫文件名 - 有什麼建議?

通過匹配的URL的片段,假設文件基礎的後綴迎接

回答

1
RewriteRule ^/images/(trees/)?(.+)_(middle|thumb)(.+)$ uploads/$3/$2$4 [NC,L] 

作品總是middlethumbtrees/是可選的,它然後串接使用各種塊的匹配

+0

謝謝!完美的作品 – Aaroniker

+0

如果沒有_thumb或_middle後綴,是否也可以加載'uploads/middle /'? – Aaroniker

+1

您需要第二條規則,我相信:在先前的規則可以工作後,'RewriteRule ^/images /(trees /)?(.+)$ upload/middle/$ 2 [NC,L]''。在這種情況下,第一條規則不匹配,所以第二條規則將被執行。 – DorianFM

1

你可以在你的文檔根目錄使用這樣的規則:

RewriteEngine On 
RewriteRule ^images/([^_]+)_(.+)$ /uploads/$2/$1.png [NC,L] 

這將支持你想要的結構:/images/ex_middle.png and /images/ex_thumb.png