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.
Grig a zis
Este de preferat a folosi .htaccess în astfel de cazuri ….
Vasile Ruscior a zis
Aşa e. Ideea e că nu toţi au curaj să editeze .htaccess-ul. Cum pui ceva greşit, cum pică tot site-ul. 🙂
P.S: Nu-mi dau seama de ce acest comentariu nu a trecut de filtre. Cred că din cauza adresei de email. L-am publicat cu data de azi.
Grig a zis
Nu știu ce filtre folosești tu, eu mă bazez doar pe Akismet și pe câteva cuvinte cheie pentru a opri spamul.
Marius Cucu a zis
Da rateuri cateodata Akismet
Vasile Ruscior a zis
Nu mai folosesc Akismet de ceva timp. 🙂