Sisu Marketing

WordPressi .htaccess reeglitel on ka erandeid

WordPress tegi ajaveebiplatvormil olulise evolutsioonilise sammu edasi, viies selle täieõiguslikule sisuhaldussüsteemile lähemale koos redaktsioonide jälgimise, suurema toetuse kohandatud menüüdele ja - minu jaoks kõige huvitavamale funktsioonile - mitme saidi tugi koos domeenide kaardistamisega.

Kui te pole sisuhaldussüsteemi narkar, pole midagi. Võite selle artikli vahele jätta. Kuid oma kaastehno-geekide, koodipeade ja apache-dabbleritega tahan jagada midagi huvitavat ja midagi lahedat.

Mitu saiti on funktsioon, mis võimaldab teil ühe WordPressi installiga käitada mis tahes arvu WordPressi veebisaite. Kui haldate mitut saiti, on see tore, sest saate installida heakskiidetud rühma teemasid ja vidinaid ning aktiveerida need oma kliendisaitide jaoks. Domeenide kaardistamisel on mõned tehnilised takistused, kuid see protsess pole keeruline.

Üks probleemsetest valdkondadest, mille tuvastasin, on teema kohandamine. Kuna teemasid saab teha kättesaadavaks mitmele veebisaidile, mõjutavad kõik teema kohandused ka kõiki teisi saite, mis kasutavad seda teemat teie mitme saidi installimisel. Minu viis sellest mööda minna on dubleerida teema enne kohandamise alustamist ja selgelt nimetada teema selle kliendi saidi jaoks, mille jaoks ma selle kujundan.

Teine huvitav küsimus on see, mis toimub .htaccess faili oma Apache serveris. WordPress peab teed iga ajaveebi kaupa ümber kirjutama ja teeb seda ümberkirjutusreegli ja php faili.

WordPress kasutab järgmist ümberkirjutamise reeglit:

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

Purustatud, tähendab see järgmist:

  1. RewriteRule – See direktiiv ütleb Apache'ile, et see on ümberkirjutamise reegel.
  2. ^([_0-9a-zA-Z-]+/)? – see on regulaaravaldis (RegEx), mis vastab märgijadale, mis algab valikulise tähtnumbriliste märkide ja sidekriipsudega, millele järgneb kaldkriips. Sulud tähistavad püüdmisrühma, mis tähendab, et sobitatud teksti saab kasutada asendusstringis.
  3. files/ – See vastab stringile "failid/".
  4. (.+) – See on veel üks püüdmisrühm, mis ühtib mis tahes tähemärkide jadaga, üks või mitu korda.
  5. wp-includes/ms-files.php?file=$2 – See on asendusstring, mis asendab sobitatud stringi. See käsib Apache'il suunata päringu aadressile "wp-includes/ms-files.php", kusjuures päringu parameetriks nimetatakse teise püüdmisrühma väärtust ($2) "fail".
  6. [L] – See on lipp, mis käsib Apache'il lõpetada kõigi edasiste reeglite töötlemine, kui see reegel vastab.

Põhimõtteliselt kirjutatakse kõik, mis on mysite.com/files/directory alamkataloogis, ümber saidile mysite.com/files/wp-includes/myblogfolderpath ... ja see muutub seal huvitavaks. Mis juhtub, kui teie serveris peab tegelikult olema fail, mis on mysite.com/files/myfolder/myimage.jpg? Saate 404 vea, see juhtub. Apache'i ümberkirjutamise reegel lööb sisse ja muudab teed.

Tõsi, te ei pruugi selle probleemiga kunagi kokku puutuda, aga ma tegin seda. Mul oli sait, mis pidi kasutama mõnelt teiselt veebisaidilt javascripti vidinat, ja see pidi leidma graafika aadressilt mysite.com/files/Images/myfile. Kuna hostisaidil ei olnud võimalik faili muuta, oli mul vaja leida viis, kuidas seda oma serveris teha. Lihtne lahendus on luua ümberkirjutamise tingimus, mis teeb konkreetsete failide jaoks erandi.

Siin on lahendus:

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]

Purustatud:

Rida 1:

  1. RewriteCond – See direktiiv ütleb Apache'ile, et see on RewriteCond reegel.
  2. %{REQUEST_URI} – See on serveri muutuja, mis sisaldab taotletud URI teed.
  3. ! - See on eitusoperaator, mis tähendab "mitte". Seda kasutatakse tingimuse ümberpööramiseks.
  4. /?files/Image/file1.jpg$ – See on regulaaravaldis, mis vastab täpselt stringile „/files/Image/file1.jpg” taotletud URI lõpus. Küsimärk ja kaldkriips enne „faile” muudavad eesmise kaldkriipsu valikuliseks.

Rida 2:

  1. RewriteCond – See direktiiv ütleb Apache'ile, et see on RewriteCond reegel.
  2. %{REQUEST_URI} – See on serveri muutuja, mis sisaldab taotletud URI teed.
  3. ! - See on eitusoperaator, mis tähendab "mitte". Seda kasutatakse tingimuse ümberpööramiseks.
  4. /?files/Image/file2.jpg$ – See on regulaaravaldis, mis vastab täpselt stringile „/files/Image/file2.jpg” taotletud URI lõpus. Küsimärk ja kaldkriips enne „faile” muudavad eesmise kaldkriipsu valikuliseks.

Rida 3:

  1. RewriteRule – See direktiiv ütleb Apache'ile, et see on ümberkirjutamise reegel.
  2. ^([_0-9a-zA-Z-]+/)? – See on regulaaravaldis, mis vastab märgijadale, mis algab valikulise tähtnumbriliste märkide ja sidekriipsudega, millele järgneb kaldkriips. Sulud tähistavad püüdmisrühma, mis tähendab, et sobitatud teksti saab kasutada asendusstringis.
  3. files/ – See vastab stringile "failid/".
  4. (.+) – See on veel üks püüdmisrühm, mis ühtib mis tahes tähemärkide jadaga, üks või mitu korda.
  5. wp-includes/ms-files.php?file=$2 – See on asendusstring, mis asendab sobitatud stringi. See käsib Apache'il suunata päringu aadressile "wp-includes/ms-files.php", kusjuures päringu parameetriks nimetatakse teise püüdmisrühma väärtust ($2) "fail".
  6. [L] – See on lipp, mis käsib Apache'il lõpetada kõigi edasiste reeglite töötlemine, kui see reegel vastab.

Ümberkirjutamise tingimused tuleb panna enne reegli kirjutamist, muidu see trikk ei toimi. Kui peaksite sarnase probleemiga kokku puutuma, peaks seda tingimust olema lihtne oma eesmärkidel muuta. Lahendus töötas minu jaoks suurepäraselt, võimaldades asendada pigem kohandatud graafika kui vähem soovitav alttekst, mis minu kujundusele ei sobinud. Loodetavasti töötab see ka teie jaoks.

Tim Piazza

Tim Piazza on Social Life Marketingi partner ja ProSocialTools.com-i asutaja. See on väikeettevõtete ressurss sotsiaalmeedia ja mobiiliturunduse abil kohalike klientideni jõudmiseks. Kui ta ei loo uuenduslikke lahendusi, mis äriprotsesse kiirendavad, meeldib Timile mandoliini mängida ja mööblit meisterdada.

seotud artiklid

Tagasi üles nupule
lähedal

Adblock tuvastatud

Martech Zone suudab teile seda sisu tasuta pakkuda, kuna teenime oma saidi rahaks reklaamitulu, sidusettevõtete linkide ja sponsorluse kaudu. Oleksime tänulikud, kui eemaldaksite meie saidi vaatamise ajal oma reklaamiblokeerija.