Bug estúpido realmente.
Tengo cerca de 45.000 dominios alojados en rentyourdot.com, con cerca de 100 plantillas. Los nombres de archivo se accede usando algo como / images / template / filename.filetype.
Ejemplo, / images / redtemplate / header.jpg
Yo no quería de Google para darse cuenta de que de los 45.000 sitios web que tengo de que muchos de ellos tenían la misma plantilla. Así que una de las muchas cosas que hice fue eliminar el nombre de la plantilla de todas las plantillas, de modo que las imágenes y archivos CSS ahora parecía ser de orden general y no todos ellos procedentes de una carpeta. Lo hice agarrar plantillas, basado en un identificador de sesión y luego acceder a los archivos de
/ images / header.jpg
Entonces utiliza reescritura de URL para cambiar la ubicación de la imagen de / images / header.jpg a / images / redtemplate / header.jpg
Esto significa que dos diferentes modelos, puede tanto el acceso / images / cabecera. jpg, pero que obtendrían imágenes diferentes. Esta era la correcta.
Ejemplo,
/ images / header.jpg -> / images / rojo template / header.jpg si la persona estaba utilizando el rojo de plantilla
/ images / header.jpg -> / images / azul template / header.jpg si la persona estaba utilizando la plantilla azul
Este estaba trabajando la mayor parte del tiempo. Sin embargo, había la posibilidad de que en realidad fueron colisiones en el sistema de cache MD5, porque yo estaba usando el nombre corto para determinar el nombre del archivo caché no, la versión larga
es decir:
si la persona estaba utilizando el rojo de plantilla
/ images / header.jpg -> / images / rojo template / header.jpg -> md5 (/ images / header.jpg) -> e4d909c290d0fb1ca068ffaddf22cbd0.jpg
si la persona estaba utilizando la plantilla azul
/ images / cabecera. - jpg> / images / azul template / header.jpg -> md5 (/ images / header.jpg) -> e4d909c290d0fb1ca068ffaddf22cbd0.jpg
MD5 MISMO!! Esto significa que si se almacenan en caché el archivo, el rojo de plantilla, se muestran las imágenes de color azul. Cuando la caché expire, funcionaría correctamente, y la plantilla azul se muestran imágenes de color rojo.
Dado que la mayoría de las veces, el MD5 no habría colisiones en el nombre de la caché, que trabajará para la mayoría de archivos, es decir:
/ images / cabecera. jpg (redtemplate)
/ images/header2.jpg (bluetemplate)
Ahora bien, no habrá una colisión en la codificación de MD5.
¿Algo de esto tiene sentido? Lo que quiero decir es que yo debería haber estado utilizando el nombre de MD5 del nombre de la imagen de destino, no el nombre de la imagen de origen.
/ images / redtemplate / header.jpg -> e4d909c290d0fb1ca068ffaddf22cbd0.jpg
/ images / bluetemplate / header.jpg -> d41d8cd98f00b204e9800998ecf8427e. jpg
Esto es lo que el error se redujo a:
$ CNAME = md5 ($ PROVEEDOR);
VS:
$ CNAME = md5 ($ dname);
Una diferencia carta (frente a la fuente de destino) significa el nombre equivocado fue utilizado y todo funcionó el 99% del tiempo, en lugar del 100% del tiempo.
I couldt encontrar esto para la vida de mí!
Aquí hay un ejemplo de que funciona correctamente (nombre de la plantilla es yeso):
http://www.photofight.com/images/yeso/smile.gif
Remapped (nombre de la plantilla sigue siendo yeso, pero no ve la reasignación):
http://www.photofight.com/images/smile.gif
Upload video and picture galleries at http://www.bodydot.com?post+upload+video+picture+gallery