Redirect marca Wordpress
In principiu, si fara a intra in prea multe detalii, redirect 302 e rau, redirect 301 e bun. Chestia are de-a face cu idiosincraziile Google, si e luata de buna de o larga majoritate intre expertii pe probleme (aia autenticii, nu copchii cu pretentii de pe la noi - si apropo, cind zic "copchii cu pretentii" sa nu aveti impresia ca-i exclud pe penibilii a la Cristi Mezei, Gabriel Curcudel aka Krumel si altii de aceeasi teapa, ca nu-i exclud nici intr-un caz ci foarte specific ii includ, despre ei e vorba in primul rind, habar n-au sarmanii pe ce lume se afla cu ciocurile si palariutele lor cu tot).
Puteti avea insa surpriza sa constatati (cum tocmai ce-a constatat un amic si mi-a scris disperat) ca Awstats raporteaza ceva precum
HTTP | Status codes | Hits | Percent | Bandwidth | |
302 | Moved temporarily (redirect) | 48056 | 86.1 % | 15.30 MB | |
301 | Moved permanently (redirect) | 6271 | 11.2 % | 910.02 KB | |
500 | Internal server Error | 922 | 1.6 % | 875.18 KB | |
404 | Document Not Found | 262 | 0.4 % | 2.21 MB | |
206 | Partial Content | 247 | 0.4 % | 2.03 MB | |
403 | Forbidden | 12 | 0 % | 11.39 KB |
In caz ca va ingrijoreaza abundenta de 302 (care de altfel nici nu si-ar prea avea locul, avind in vedere ca nu mutati de ici colo si inapoi continutul chiar in toata ziua), explicatia aparitiei acelor 302-uri e urmatoarea : wordpress foloseste propria functie de redirectare, wp_redirect, care se gaseste definita in wp-includes/pluggable.php
Definitia e facuta in termenii
function wp_redirect($location, $status = 302) {
ceea ce inseamna ca daca nu se specifica altfel la invocare, statutul redirectarii va fi 302. Lucrul nu este rau in sine, doar ca lenea programatorilor ulteriori, care nu se prea obosesc sa declare wp_redirect() corect, adica cu url si cod rezulta intr-o groaza de redirectari temporare acolo unde ele de fapt ar trebui sa fie permanente.
Solutia paleativa, in caz ca nu va gasiti dispusi sa cautati toate instantele in care se invoca wp_redirect si sa meditati daca e cazul de 301 sau 302 e sa modificati pur si simplu valoarea default, de la 302 la 301.
In marea, vasta si imensa majoritate a cazurilor aceasta operatie nu va avea nici un fel de efecte perverse, scutindu-va de problema de-a avea 80-90% din redirectari de soiul neiubit de Google. Totusi, in caz ca aplicati modificarea se recomanda sa tineti hardughia sub observatie citva timp, sa va asigurati ca nu s-a rupt nimic.
Exista bineinteles la dispozitie si solutia corecta, de-a citi tot codul si-al corecta dupa nevoi, dar am ca o presimtire ca n-o va aplica absolut nimeni.
PS. Exista si
function wp_safe_redirect($location, $status = 302) {
just for the record.