Las reglas de WordPress también tienen excepciones

wordpress apache

wordpress apacheWordPress dio un gran paso evolutivo en la plataforma de blogs, acercándola a un sistema de gestión de contenido completo con seguimiento de revisiones, más soporte para menús personalizados y, la característica más intrigante para mí, soporte para múltiples sitios con mapeo de dominios.

If you are not a content management system junkie, it’s okay. You can skip right past this article. But for my fellow techno-geeks, code-heads and apache-dabblers, I want to share something interesting, and something cool.

Multi-site is a feature that allows you to run any number of WordPress websites with a single WordPress installation. If you administer multiple sites, it’s nice because you can install an approved group of themes and widgets, and activate them for your client sites. There are a few technical hurdles to map your domains, but the process is not difficult.

Una de las áreas problemáticas que identifiqué es la personalización del tema. Dado que los temas pueden estar disponibles para varios sitios web, cualquier personalización que realice en un tema también afectará a cualquier otro sitio que utilice ese tema en su instalación de varios sitios. Mi forma de evitar esto es duplicar un tema antes de comenzar a personalizarlo y nombrar claramente el tema para el sitio del cliente para el que lo estoy diseñando.

Otro tema interesante es lo que sucede en el archivo .htaccess de su servidor Apache. WordPress necesita reescribir rutas blog por blog y lo hace con una regla de reescritura y un archivo php.

WordPress usa la siguiente regla de reescritura:

RewriteRule ^ ([_ 0-9a-zA-Z -] + /)? Archivos /(.+) wp-includes / ms-files.php? File = $ 2 [L]

Essentially, anything that is in a subdirectory of mysite.com/files/directory gets rewritten to mysite.com/files/wp-includes/myblogfolderpath… and this is where it gets interesting. What happens if you actually need to have a file on your server that is mysite.com/files/myfolder/myimage.jpg? You get a 404 error, that’s what happens. The Apache rewrite rule kicks in and changes the path.

Por supuesto, es posible que nunca te encuentres con este problema, pero yo sí. Tenía un sitio que necesitaba usar un widget de JavaScript de otro sitio web, y necesitaba encontrar gráficos en mysite.com/files/Images/myfile. Como no había forma de cambiar el archivo en el sitio host, necesitaba encontrar una manera de hacerlo en mi servidor. La solución fácil es crear una condición de reescritura que haga una excepción para archivos específicos.

Aquí está la solución:

RewriteCond% {REQUEST_URI}! /? Files / Image / file1.jpg $
RewriteCond% {REQUEST_URI}! /? Files / Image / file2.jpg $
RewriteRule ^ ([_ 0-9a-zA-Z -] + /)? Archivos /(.+) wp-includes / ms-files.php? File = $ 2 [L]

The rewrite conditions have to be placed before the rewrite rule, or this trick won’t work. It should be easy to modify this condition for your own purposes, should you encounter a similar problem. The solution worked great for me, allowing me to substitute custom graphics rather than the less desirable alt text that didn’t suit my design. Hopefully, it will work for you, too.

¿Qué piensas?

Este sitio usa Akismet para reducir el correo no deseado. Descubra cómo se procesan los datos de sus comentarios.