As regras do WordPress também têm exceções

wordpress apache

wordpress apacheO WordPress deu um grande passo evolutivo na plataforma de blogging, aproximando-a de um sistema de gerenciamento de conteúdo completo com rastreamento de revisão, mais suporte para menus personalizados e - o recurso mais intrigante para mim - suporte a vários sites com mapeamento de domínio.

Se você não é um viciado em sistema de gerenciamento de conteúdo, tudo bem. Você pode pular este artigo. Mas para meus colegas techno-geeks, code-heads e apache-dabblers, quero compartilhar algo interessante e algo legal.

Multi-site é um recurso que permite que você execute qualquer número de sites WordPress com uma única instalação do WordPress. Se você administra vários sites, é bom porque você pode instalar um grupo aprovado de temas e widgets e ativá-los para os sites de seus clientes. Existem alguns obstáculos técnicos para mapear seus domínios, mas o processo não é difícil.

Uma das áreas problemáticas que identifiquei está na personalização do tema. Como os temas podem ser disponibilizados para vários sites, quaisquer personalizações feitas em um tema também afetarão quaisquer outros sites que usam esse tema em sua instalação de vários sites. Minha maneira de contornar isso é duplicar um tema antes de começar a personalizar e nomear claramente o tema para o site do cliente para o qual estou projetando.

Outra questão interessante é o que acontece no arquivo .htaccess em seu servidor Apache. O WordPress precisa reescrever caminhos blog por blog e faz isso com uma regra de reescrita e um arquivo php.

O WordPress usa a seguinte regra de reescrita:

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

Essencialmente, qualquer coisa que esteja em um subdiretório de mysite.com/files/directory é reescrito para mysite.com/files/wp-includes/myblogfolderpath ... e é aqui que fica interessante. O que acontece se você realmente precisar ter um arquivo em seu servidor que seja mysite.com/files/myfolder/myimage.jpg? Você obtém um erro 404, é o que acontece. A regra de reescrita do Apache entra em ação e muda o caminho.

Concedido, você pode nunca encontrar esse problema, mas eu encontrei. Eu tinha um site que precisava usar um widget javascript de outro site e precisava encontrar gráficos em mysite.com/files/Images/myfile. Como não havia como alterar o arquivo no site host, eu precisava descobrir uma maneira de fazer isso no meu servidor. A solução fácil é criar uma condição de regravação que abra uma exceção para arquivos específicos.

Aqui está a solução:

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

As condições de reescrita devem ser colocadas antes da regra de reescrita, ou este truque não funcionará. Deve ser fácil modificar essa condição para seus próprios propósitos, caso você encontre um problema semelhante. A solução funcionou muito bem para mim, permitindo-me substituir gráficos personalizados em vez do texto alternativo menos desejável que não combinava com meu design. Esperançosamente, funcionará para você também.

O que você acha?

Este site usa o Akismet para reduzir o spam. Saiba como seus dados de comentário são processados.