WordPress redirect jeb kā uzturēt vecās lapas adreses

Pirms mēneša iemigrētais Pods.lv arhīvs neliek mieru. Pareizāk sakot, mieru neliek kļūdas, kas lien ārā dēļ lietām, kuras netika nokoptas līdz galam.

Ja lapa ir eksistējusi internetos veselu mūžību, tad atsauces uz dažādiem rakstiem visticamāk, ka ir sarakstītas dažādās vietās. Vecos rakstus jau neviens nelabo. Savukārt cilvēki, kas meklē informāciju, uz šiem rakstiem nonāk šodien. Nospiežot uz saites viņš nonāk uz neeksistējošu lapu un bēdīgs aiziet prom.

Šajā situācijā par vecām adresēm būtu jāparūpējas lapas autoram. Vismaz es tā domāju. Tad nu padalīšos ar to kā tikt galā ar vecajām adresēm, kuras tagad apkalpo WordPress.

Vienā no iepriekšējiem rakstiem jau pieminēju risinājumu ar kura palīdzību es salaboju vecās RSS barotnes adreses.

Lieta tāda, ka manam blogam pa šiem gadiem ir bijušas dažādas adreses. Neliela ilustrācija šim zvērudārzam. Šīs ir adreses, kas glabājas WordPress tabulā posts iekš guid kolonnas.

Pods.lv adreses

Un labākais ir tas, ka visas adreses joprojām strādā. Daļēji pateicoties WordPress spējai saglabāt raksta sākotnējo adresi, daļēji tam, ka es papildināju šo funkcionalitāti ar pāris trikiem.

Piemēram, pirmais ieraksts domēnā Pods.lv, dažādos laikos būtu ar dažādām adresēm:

https://pods.lv/story.php?storyid=2001/11/9/11
https://pods.lv/arhivs/2001/11/9/11/
https://pods.lv/blog/2001/11/cik_svarigs_ir_domena_vards_prieks_webmastera.html
https://pods.lv/2001/11/09/cik_svarigs_ir_domena_vards_prieks_webmastera/

Atkarībā no tā, kad šī lapa tika izmantota atsaucēm, tā rakstā parādītos vienā no augstāk minētajiem veidiem.

Ja es kā lapas īpašnieks vēlos nodrošināt saturu visiem gribētājiem, neatkarīgi no tā kā viņi uz šejieni atnāca, tad būtu labi parūpēties par visiem variantiem, lai lapas apmeklētājs atrastu to saturu uz kuru viņš vēlējās nonākt. Pretējā gadījumā raksta vietā viņam atvērs kļūdas paziņojumu, ka lapa nav atrasta.

Ir dažādi veidi kā panākt to, lai vecās adreses joprojām strādātu. Man gribējās atrast veidu, kas ļautu izmantot WordPress iebūvēto funkcionalitāti.

Ja mums ir kāds universāls identifikators, tad nav problēmas šo uzdevumu atrisināt ar vienkāršu pāradresāciju.

Pēc principa:
 vecā adrese pods.lv/arhivs/2004/12/31/raksta_nosaukums.html
 jaunā adrese pods.lv/2004/12/31/raksta_nosaukums/

Jautrības parādās tajā brīdī, ja rakstam adreses tika ģenerētas pēc citiem principiem un tām nav unikālu identifikatoru vai arī tas ir atšķirīgs.

Ko darīt šajā gadījumā?
 vecā adrese pods.lv/arhivs/2004/1/9/12345 (atšķirīgs datuma formāts un ID)
 jaunā adrese pods.lv/2004/01/09/raksta_nosaukums/ (ID vietā ir nosaukums)

Šādas adreses bez papildus špikeriem nevar pāradresēt. Ir nepieciešama informācija par to kāda ir jaunā adrese. Attiecīgi būs nepieciešams nodrošināt WordPress ar šādu špikeri.

Ja ar domu par špikeri es tiku skaidrībā, tad joprojām aktuāls palika jautājums par to kā labāk iebarot šo špikeri Wordpresā. Ātri pārskrienot topīgākos WordPress spraudņus, nonācu līdz WordPress Redirection. Padomāju, ka gandrīz 1.8 miljonu lejupielādes ir pietiekami spēcīgs arguments to izmēģināt. 😉

Spraudnis izrādījās vienkārši fantastisks. Te būs viens piemērs ar to kā pieraksta adreses pāradresāciju uz jauno vietu.

Pāradresācijas logs

Iespēju ir daudz, es pamēģināju tikai dažas no tām. Bet idejiski spraudnis ir tieši tas, ko dakteris izrakstīja.

Tālāk parādījās jautājums – kā iedzīt datubāzē visas vecās adreses. Ar SQLiem nevajadzēs spēlēties, jo autors ir parūpējies arī par to. Ir iespējams ieimportēt CSV failu (Ja rodas problēmas ar importu, tad šī brīža versijā ir neliels gļuks, kuru var izlabot ar rociņām). Tā kā nekur nekas nebija minēts, tad pieņēmu, ka formāts is vienkāršs – /veca_adrese,/jauna_adrese un tas nostrādāja.

Kad gatavoju vecā arhīva rakstus, es (vismaz teorijā 😉 ) divas reizes izgāju cauri visiem rakstiem, lai no tiem izvilktu sarakstu ar vecajām saitēm. Pirmo reizi, kad piereģistrēju vecā raksta adresi un otro reizi, kad to nomainīju pret jauno. Tas gan nepalīdz gadījumos, kad saite uz veco rakstu ir ievietota no ārējā resursa, kuru es nevaru ietekmēt. Tāpēc visas vecās adreses man bija sagatavotas atsevišķā failā.

Labā ziņa ir tā, ka tagad visas adreses glabājas datubāzē un attiecīgais spraudnis piedāvā arī statistiku par to kā tas darbojas. Te būs viens piemērs.

Pods log urls

Papildinot šo spraudni ar roku veiklību, WordPress ērtumu un nginx spēku, iegūstam mūžīgi strādājošas adreses un laimīgus apmeklētājus, kā arī beigās kāds mums par to varbūt arī samaksā. 🙂

3 thoughts on “WordPress redirect jeb kā uzturēt vecās lapas adreses

  1. Arnis

    Ja ir vēlme izķert arī saites no ārējiem resursiem, to var diezgan vienkārši panākt ar Google Analytics vienā no šiem veidiem:

    * http://www.bluefountainmedia.com/blog/track-404-errors-in-google-analytics/
    * http://antezeta.com/news/404-errors-google-analytics

    Man pašam labāk patīk izmantot Events, bet tas ir tīri gaumes jautājums.

    Atbildēt
  2. Kristaps K.

    Super! Būs ar šito jāpaspēlējas, lielākā sāpe pēc bloga atjaunošanas un čupas vēsturisko rakstu atkalpublicēšanas kāreiz ir ienākošo saišu sabrucījiens.

    Atbildēt

Atbildēt uz komentāru Arnis Atcelt atbildi

Tava e-pasta adrese netiks publicēta. Obligātie lauki ir atzīmēti kā *