将图像从文件夹重定向到文件夹

时间:2013-01-22 01:48:23

标签: image .htaccess mod-rewrite redirect directory

我有一个包含15000张图片的文件夹,我决定将它们放在10个文件夹中。

我有15000张图片的初始文件夹网址是:

www.mysite.com/images/games/  

新文件夹的网址是:

www.mysite.com/images/games/1/  
www.mysite.com/images/games/2/  
www.mysite.com/images/games/3/  
www.mysite.com/images/games/4/  
www.mysite.com/images/games/5/  
www.mysite.com/images/games/6/  
www.mysite.com/images/games/7/  
www.mysite.com/images/games/8/  
www.mysite.com/images/games/9/  
www.mysite.com/images/games/10/  

如何重定向我的图片以匹配其正确的文件夹以摆脱404错误?

2 个答案:

答案 0 :(得分:2)

就像我喜欢引用When Not To Use Rewrite一样,这实际上是一个需要mod_rewrite的情况。

您没有说明如何在十个新目录之间分发图像,但我假设图像已编号(例如00001.png00002.png,.. 。15000.png)。然后,您使用最后一位数来确定哪个图像进入哪个文件夹,即00001.png进入1目录,一直到15000.png进入10目录(我想 - 你为什么不把它命名为0?)这就是你做的,对吗?

你没有提到你在这个网站上使用的服务器,所以我假设你正在使用Apache,对吧?在这种情况下,你要编辑相应的配置文件(我开始尝试假设哪一个,但老实说它可能是我能想到的四个中的任何一个,具体取决于你是否拥有vhost配置的编辑权限,或者是服务器,或者如果你使用的是Debian风格或Red-Hat风格的发行版,你 使用Linux,对吗?你没有说。)你' d确保某处有一个RewriteEngine On,然后你会做这样的事情:

RewriteRule ^/images/games/(\d+)(\d)\.png$ /images/games/$2/$1$2.png

...除了您将目录命名为10而不是0,因此以0结尾的所有内容都将被误导。也许我们应该试试这个?

RewriteRule ^/images/games/(\d+0)\.png$ /images/games/10/$1.png [L]
RewriteRule ^/images/games/(\d+)([1-9])\.png$ /images/games/$2/$1$2.png [L]

...首先抓住0,然后抓住其他所有东西。

我会检查这个答案,但你没有给我们任何足够的信息来了解如何。

答案 1 :(得分:2)

鉴于您在上述评论中的扩展:

  

我知道哪些图片会转到哪个文件夹,但它是一个很大的列表

我建议将该列表放在文本文件中,然后使用查找和替换(或awk?)将该列表转换为mod_redirect规则,例如

Redirect /images/games/oldname /images/games/8/oldname

然后将它们粘贴到配置文件中。如果没有确定如何将这些内容分类到目录中的实际算法,则没有可以重定向请求的程序,因为它需要一个公式才能工作。