Přesměrování starých URL Mozektevidi.net - Píše Olda Šálek.

Přesměrování starých URL

Jak přesměrovat pomocí .htaccess mod rewrite? Podstrkávat pomocí mod rewrite? To je jednoduché. PHP skript

SEO URL a htaccess

Zjistil jsem, že mnoho lidí nemá ošetřené duplicidní url. I já mezi ně patřil. Co tím myslím? Moje pravé URL vypadá takto :
mozektevidi.net/?clanek=presmerovani-starych-url
A pomocí souboru .htaccess podstrkávám více cool adresu :
mozektevidi.net/clanek/presmerovani-starych-url

.htaccess

RewriteCond  %{HTTP_HOST}  ^mozektevidi.net
RewriteRule  ^clanek/(.*)$  /?clanek=$1 [L,QSA]
RewriteRule znamená podstrčení. Jenomže co když někdo zadá původní adresu? Co se stane? Nic. Zobrazí se původní URL. Vyhledávač v tom případě vidí více adres vedoucí na jednu a tu samou stránku. Snad jsem problém vysvětlil dostatečně.

Diskuze, hledání řešení

Hledal jsem odpověď na diskuze.jakpsatweb.cz, moderátoři se mi snažili poradit, leč všechny htaccessy jsem zkoušel, nefungoval ani jeden. To samé PCT fórum. Nechal jsem to být s tím, že to až tak nevadí. Když ani na webu celebrity českého internetu, pana webdesignera je stejný problém. Mluvím o webu Davida Grudla.
Abych jen neplácal vodu, uvedu příklad. Krásný článek existuje ..trine/item/s-plavackem-ve-vane i tady na ..trine?item=s-plavackem-ve-vane. Vidíte všichni ten rozdíl? Duplicidní URL. Stejnou chybu vlastnost obsahuje i nejmenovaný nejlepší redakční systém nejmenovaného Smích

Mám řešení

Řešení jsem hledal opravdu dlouho, jak jsem psal výše, neporadili mi na žádné diskuzi ani nikde jinde. Přitom řešení je tak jednoduché. Udělal jsem chybu, že jsem se to snažil vyřešit přes .htaccess, když to jde mnohem elegantněji přes PHP Machr

if (isset($_GET['clanek']))
{
$pozadovany_clanek = htmlspecialchars($_GET['clanek']); // co chce.
$pozadovana_url = htmlspecialchars($_SERVER['REQUEST_URI']); //dostanu celou relativní URL včetně případných parametrů
$cast_url = substr($pozadovana_url, 1, 1); //vytáhnu druhý znak
if ($cast_url =="?") //url s parametrem?
{
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://mozektevidi.net/clanek/$pozadovany_clanek");
header("Connection: close");
}
}

Uvedený skrip je nastavený pro můj web, jeho modifikace pro další url je snadná. Stračí nahradit clanek za item Mrknutí

Edit

Všimnul jsem si, že web dgx tím netrpí. Nevím jestli jsem se překouknul nebo je vlastnost opravená. Ale trpí tím např web radka hulána. Viz url: http://radekhulan.cz/?item=outlook-2007-cz-neumi-psat-czesky Omlouvám se za mystifikaci SMILL


autor článku Oldřich Šálek | datum publikování 4.duben.2007 21:52 | služby a články co mohou být užitečné služby |

Kometáře


Komentáře a diskuze ke článku tady
diskuze ke článku