Přesměrování starých URL (c) Oldřich Šá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_url11); //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

ico Oldřich Šálek | ico 4. dubna 07, 19:04

Líbil se ti článek? Sleduj další články pomocí RSS.

Související články

Diskuze ke článku

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