2014-03-12 65 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