我有一个包含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错误?
答案 0 :(得分:2)
就像我喜欢引用When Not To Use Rewrite一样,这实际上是一个需要mod_rewrite
的情况。
您没有说明如何在十个新目录之间分发图像,但我假设图像已编号(例如00001.png
,00002.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
然后将它们粘贴到配置文件中。如果没有确定如何将这些内容分类到目录中的实际算法,则没有可以重定向请求的程序,因为它需要一个公式才能工作。