htaccess根据前两个后两个字符重写规则

时间:2012-10-13 19:05:21

标签: regex .htaccess mod-rewrite

对于所有正则表达式大师而言,这应该相当容易,但是我们遇到了问题。

我们通过允许人们将图像上传到一个文件夹而犯了一个错误。现在我们只在一个文件夹中停留了150k jpg图像,并且它使我们的服务器放慢了很多。

人们仍然可以上传到这个文件夹(实时网站),我们需要慢慢解决这个问题。我们的想法是将文件移动到这样的子文件夹:

/jpg/121765_180x135.jpg/jpg/12/17/121765_180x135.jpg

前两个/秒两个字符/ file.jpg

问题是少于4个字符的文件应保留在

的位置

1 个答案:

答案 0 :(得分:3)

要将/jpg/121765_180x135.jpg重写为/jpg/12/17/121765_180x135.jpg

RewriteEngine On
RewriteRule ^/?jpg/([0-9]{2})([0-9]{2})(.*)\.jpg$ /jpg/$1/$2/$1$2$3.jpg [L]

相反:

RewriteEngine On
RewriteRule ^/?jpg/[0-9]{2}/[0-9]{2}/(.*)\.jpg$ /jpg/$1.jpg [L]

这些规则要么放在vhost / server配置中,要么放在文档根目录中的htaccess文件中。