Ai schimbat structura legăturilor permanente de pe blog? [actualizat]

Ai schimbat structura legăturilor permanente de pe blog? [actualizat]

Actualizat pe 1 ianuarie 2015
Deoarece trimiterea către browser a două headere diferite poate avea un impact negativ, am lăsat doar redirecţionarea propriu-zisă. Am simplificat şi codurile php.

———
În mod implicit, legăturile către articolele de pe orice blog cu script WordPress sunt de forma http://adresa.blog/articol-nou/ . La început au /?p=123, dar nu rămâne aşa. 😀
Deoarece se oferă posibilitatea modificării acestei structuri, mulţi bloggeri chiar aleg ceva mai personalizat. Unii pun şi categoria în legăturile permanente, alţii anul şi luna în care a fost publicat articolul, alţii mai adaugă şi ziua publicării etc.
Să zicem că, la un momentdat, se doreşte revenirea la varianta implicită, cea cu numele articolului în link. Se revine la forma iniţială, dar după schimbarea structurii legăturilor interne, legăturile vechi nu vor mai fi funcţionale. Ce-i de făcut cu link-urile de pe Google, Facebook şi din alte părţi, link-uri ce nu mai duc către articolele tale, ci către pagina 404? Ce să fie? Le reparăm. 🙂

Trecerea de la /an/luna/articol-nou/ la /articol-nou/
După schimbarea structurii permanente, adaugă următorul cod la începutul fişierului 404.php din folderul temei active pe site.
<?php
$dupadomeniu = "http://adresa.blog" . $_SERVER[‘REQUEST_URI’];
if(preg_match(‘/20/’, $dupadomeniu)) {
$articol = basename($dupadomeniu);
header( "location: http://adresa.blog/$articol" ); die(); }
?>

Trecerea de la /an/luna/zi/articol-nou/ la /articol-nou/
După schimbarea structurii permanente, adaugă următorul cod la începutul fişierului 404.php din folderul temei active pe site.
<?php
$dupadomeniu = "http://adresa.blog" . $_SERVER[‘REQUEST_URI’];
if(preg_match(‘/20/’, $dupadomeniu)) {
$articol = basename($dupadomeniu);
header( "location: http://adresa.blog/$articol" ); die(); }
?>

Trecerea de la /categorie/articol-nou.html la /articol-nou/
După schimbarea structurii permanente, adaugă următorul cod la începutul fişierului 404.php din folderul temei active pe site.
<?php
$dupadomeniu = "http://adresa.blog" . $_SERVER[‘REQUEST_URI’];
if(preg_match(‘/.htm/’, $dupadomeniu)) {
$articol = basename($dupadomeniu);
header( "location: http://adresa.blog/$articol" ); die(); }
?>

Trecerea de la /articol-nou.html la /articol-nou/
După schimbarea structurii permanente, adaugă următorul cod la începutul fişierului 404.php din folderul temei active pe site.
<?php
$dupadomeniu = "http://adresa.blog" . $_SERVER[‘REQUEST_URI’];
$pagina = str_replace(‘.html’,”, $dupadomeniu);
if($dupadomeniu != $pagina) {
header( "location: $pagina" ); die(); }
?>

Înlocuiţi http://adresa.blog cu adresa blogului vostru. Dacă preferaţi să faceţi redirecţionări folosind .htaccess, găsiţi aici un generator. Lăsaţi comentarii pentru nelămuriri.

5 comentarii

Dă-ți cu părerea

Adresa ta de email nu va fi publicată.