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, 09:04 | ico služby | přečteno: 2410x

Diskuze ke článku

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

Kategorie článků

Náhodné články

Poslední články

  • HTC Kaiser Windows Mobile – bugy
  • Mám premium účet na geocaching.com
  • 4 rady pro začínající blogery
  • Optimalizace PHP skriptů v praxi
  • Geocaching je hra pro chlapy
  • Nějaký zajímavý blog na prodej?
  • Sázava fest 2008 velká fotogalerie
  • Uživí se někdo blogováním?
  • Ruská mafie v pražském Kenvelu
  • Stěhování webu na nový server
  • Tagy ke stránce

    http header 301 hry k800i download přesměrování zdarma přesměrování htaccess port seo url adresa htaccess přesměrování webu .htaccess .htaccess presmerovani $_GET htaccess přesměrování na www adresu url přesměrování URL v PHP presmerovani pres htaccess přesměrování přes htaccess parametry header 301 presmerovani 301 + location presmerovani htacces

    Poslední komentáře

    RSS export