mod-rewrite, 404, phpčkové čachre po zmene pevných odkazov
Spravodaj zmenil pevné odkazy na články. Pôvodne som sa tým nechcel zaoberať ale dám pár tipov.
Prapôvodná adresa nejakého článku znela:
/archives/003199.html?Suzuki-Swift---test-drive
(pridajte si tam na začiatok doménu https://spravodaj.madaj.net)
Potom som zmenil pevné odkazy na tvar:
https://spravodaj.madaj.net/view.php/2005/09-suzuki-swift-test-drive
Potom som prišiel na to, že by som chudákom chodiacim na Spravodaj z Google aj trošku pomôcť.
Najprv som namaľoval 404 stránku http://www.madaj.net/404.php
a v nej zopár vychytáviek. Najmä v nej viem zistiť odkiaľ prichádza návštevník a rozoberie parametre a dokonca ich vie „posunúť“ vyhľadávaču Spravodaja.
Odvaha ísť porobiť čosi s mod-rewrite ma opúšťala ale nakoniec som sa odvážil na čosi jednoduché. Presmerúvam všetky URI smerujúce na staré adresy článkov na skript view.php a menším bonusom je, že ak otvárate kompletný pevný link podľa príkladu vyššie, tak aj za view.php bude niečo takéto:
https://spravodaj.madaj.net/view.php?Suzuki-Swift---test-drive
Na presmerovanie v mod-rewrite som použil toto:
RewriteRule (.*) https://spravodaj.madaj.net/view.php [R=301]
Problém je, že mi trošku nesedia tie kľúčové slová nadpisov v novom Spravodaji a v tom starom. Sú proste mierne iné. Ďalej sa mi neodovzdáva 003199
do view.php, čo som trošku kostrbato obišiel a porovnávam iba názvy.
Musel som preto vyrobiť porovnávaciu tabuľku a v PHP skripte view.php ich vždy prebehnúť a porovnať. Podľa toho sa view.php aj správa a zobrazí buď článok alebo nejaké upozornenie alebo presmeruje na novú adresu (v princípe sám na seba).
Peknou fintou je, že všetky skomoleniny za otáznikom zobrazí view.php vo vyhľadávacom formulári chybovej stránky.
Zložité a zrejme aj dosť náročné na výkon.
Všetko s účelom „počkať“ na vyhľadávače. Napríklad Google si sosol nový sitemap ale akosi v indexoch zostalo všetko po starom.
Nie som nejaký hyper špecialista na mod-write…
Vydrz, Google to do tyzdna zachyti. Sitemap je jedna vec, ale este musi prebehnut robot.
fd