2013-07-17 42 views
1

我有一個非常具體的要求,我非常吮吸正則表達式說穿了。.htaccess正則表達式來重寫路徑

程序生成各種尺寸的圖像,並將它們放在與圖像名稱相同的文件夾中,然後各種生成的圖像根據它們的尺寸得到新名稱。

如:/assets/images/waterlilly/0800x0600.jpg,/assets/images/waterlilly/0400x0300.jpg

由於SEO的文件名是相當不理想,所以,我想如果src屬性圖像標記可能是/assets/images/0800x0600/waterlilly.jpg我可以「簡單地」爲htaccess RewriteRule編寫正則表達式...

當然,改變調整圖像大小的工具的編程當前不是一個選項(遺憾地)

所以我的正則表達式是:

(.*?)+/[0-9]+x[0-9]+/(.*?)+\.(.*?)+ 

爲我的測試文件「/assets/images/0800x0600/waterlilly.jpg」,正則表達式匹配,我如何得到以下?

$1 = /assets/images/ 
$2 = 0800x0600 
$3 = waterlilly 
$4 = jpg 

在此先感謝!

回答

0

此正則表達式應該爲你工作:

^(.+?)/([^/]+)/([0-9]+x[0-9]+)\.(.*)$ 

這是重寫規則,會爲你:

RewriteRule ^(.+?)/([^/]+)/([0-9]+x[0-9]+)\.(.*)$ /$1/$3/$2.$4 [L] 
+0

我接受了,即使它沒有實際工作如我所料,雖然你的答案指出我正確的方向,並幫助我想出一個正常的正則表達式。這個工作正則表達式: '((。*?)+)([0-9] + x [0-9] +)/([^。] +)(。*)$/$ 1 $ 3/$ 4 $ 5 [L]' – garyrgilbert

+0

感謝您隨時告訴我什麼答案適合您,以便我可以提供該幫助作爲幫助未來訪問者的修改。 – anubhava