Anche le regole di WordPress hanno delle eccezioni

apache wordpress

apache wordpressWordPress ha fatto un importante passo in avanti evolutivo nella piattaforma di blogging, avvicinandola a un vero e proprio sistema di gestione dei contenuti con monitoraggio delle revisioni, più supporto per menu personalizzati e - la caratteristica più intrigante per me - supporto multi-sito con mappatura del dominio.

Se non sei un drogato del sistema di gestione dei contenuti, va bene. Puoi saltare questo articolo. Ma per i miei colleghi techno-geek, code-head e apache-dilettanti, voglio condividere qualcosa di interessante e qualcosa di interessante.

Il multi-sito è una funzionalità che consente di eseguire un numero qualsiasi di siti Web WordPress con una singola installazione di WordPress. Se amministri più siti, è utile perché puoi installare un gruppo approvato di temi e widget e attivarli per i tuoi siti client. Ci sono alcuni ostacoli tecnici per mappare i tuoi domini, ma il processo non è difficile.

Una delle aree problematiche che ho identificato è nella personalizzazione del tema. Poiché i temi possono essere resi disponibili a più siti Web, qualsiasi personalizzazione apportata a un tema influirà anche su tutti gli altri siti che utilizzano quel tema nell'installazione multisito. Il mio modo per aggirare questo è duplicare un tema prima di iniziare a personalizzare e nominare chiaramente il tema per il sito client per cui lo sto disegnando.

Un altro problema interessante è quello che accade nel file .htaccess sul tuo server Apache. WordPress ha bisogno di riscrivere i percorsi blog per blog e lo fa con una regola di riscrittura e un file php.

WordPress utilizza la seguente regola di riscrittura:

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

In sostanza, tutto ciò che si trova in una sottodirectory di miosito.com/file/directory viene riscritto in miosito.com/file/wp-includes/myblogfolderpath… ed è qui che diventa interessante. Cosa succede se hai effettivamente bisogno di avere un file sul tuo server che è mysite.com/files/myfolder/myimage.jpg? Ottieni un errore 404, ecco cosa succede. La regola di riscrittura di Apache entra in gioco e cambia il percorso.

Certo, potresti non incontrare mai questo problema, ma l'ho fatto. Avevo un sito che aveva bisogno di utilizzare un widget javascript da un altro sito web e aveva bisogno di trovare la grafica su miosito.com/files/Images/myfile. Dato che non c'era modo di cambiare il file sul sito host, avevo bisogno di trovare un modo per farlo sul mio server. La soluzione facile è creare una condizione di riscrittura che faccia un'eccezione per file specifici.

Ecco la soluzione:

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

Le condizioni di riscrittura devono essere poste prima della regola di riscrittura, altrimenti questo trucco non funzionerà. Dovrebbe essere facile modificare questa condizione per i tuoi scopi, se dovessi riscontrare un problema simile. La soluzione ha funzionato alla grande per me, permettendomi di sostituire la grafica personalizzata piuttosto che il testo alternativo meno desiderabile che non si adattava al mio design. Si spera che funzioni anche per te.

Cosa ne pensi?

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati dei tuoi commenti.