Les regles de WordPress també tenen excepcions

wordache apache
Temps de lectura: 2 acta

wordache apacheWordPress va fer un gran pas evolutiu cap endavant a la plataforma de blocs, acostant-lo a un sistema de gestió de contingut complet amb seguiment de revisions, més compatibilitat amb menús personalitzats i –la característica més intrigant per a mi–, suport a diversos llocs amb assignació de dominis.

Si no sou un adicte al sistema de gestió de contingut, està bé. Podeu ometre més enllà d’aquest article. Però per als meus companys tecno-frikis, caps de codi i apache-dabblers, vull compartir alguna cosa interessant i alguna cosa divertida.

El lloc múltiple és una característica que us permet executar qualsevol nombre de llocs web de WordPress amb una única instal·lació de WordPress. Si administreu diversos llocs, és bo perquè podeu instal·lar un grup de temes i widgets aprovats i activar-los per als vostres llocs de client. Hi ha alguns obstacles tècnics per mapar els vostres dominis, però el procés no és difícil.

Una de les àrees problemàtiques que he identificat és la personalització de temes. Com que els temes es poden fer disponibles per a diversos llocs web, les personalitzacions que feu amb un tema també afectaran qualsevol altre lloc que utilitzi aquest tema a la instal·lació de diversos llocs. La meva manera d’evitar-ho és duplicar un tema abans de començar a personalitzar-lo i nomenar clarament el tema del lloc del client per al qual estilo.

Un altre problema interessant és què passa al fitxer .htaccess del servidor Apache. WordPress ha de tornar a escriure camins blog per blog i ho fa amb una regla de reescriptura i un fitxer php.

WordPress utilitza la següent regla de reescriptura:

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

Essencialment, tot el que es troba en un subdirectori de mysite.com/files/directory es reescriu a mysite.com/files/wp-includes/myblogfolderpath… i aquí és on resulta interessant. Què passa si realment necessiteu tenir un fitxer al servidor que és mysite.com/files/myfolder/myimage.jpg? Reps un error 404, això és el que passa. La regla de reescriptura d'Apache inicia i canvia el camí.

És cert que mai no us trobareu amb aquest problema, però sí. Tenia un lloc que necessitava fer servir un widget javascript d’un altre lloc web i que necessitava trobar gràfics a mysite.com/files/Images/myfile. Com que no hi havia cap manera de canviar el fitxer al lloc amfitrió, necessitava trobar una manera de fer-ho al meu servidor. La solució fàcil és crear una condició de reescriptura que faci una excepció per a fitxers específics.

Aquí teniu la solució:

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]

Les condicions de reescriptura s'han de situar abans de la regla de reescriptura, o aquest truc no funcionarà. Hauria de ser fàcil modificar aquesta condició per als vostres propis propòsits, si teniu un problema similar. La solució em va funcionar molt bé, permetent-me substituir els gràfics personalitzats en lloc del text alternatiu menys desitjable que no s’adaptava al meu disseny. Amb sort, també funcionarà per a vosaltres.

Què et sembla?

Aquest lloc utilitza Akismet per reduir el correu no desitjat. Esbrineu com es processa el vostre comentari.