Htaccess polopaticky - riešenie problému s duplicitou
11. November 2007
Canonical issue (kanonický problém) má web v prípade, keď má na viacerých URL adresách totožný obsah (pomenovanie pochádza od slova canonicalization, ktorým sa v Google označuje problém výberu z niekoľkých URL adries s rovnakým obsahom). Najčastejší prípad je ten, keď sú prístupné obe: non-www verzia (http://seochat.sk) a aj www verzia stránok (http://www.seochat.sk). Technicky sa totiž jedná o dve rôzne URL adresy a ako také môžu mať rôzny obsah. Lenže vo väčšine prípadov sú to dokonalé duplikáty a tak spolu so súborom /index.php (index.html, index.asp, default.php, apod.) môžu vytvoriť 4 kópie rovnakej stránky:
http://seochat.sk
http://www.seochat.sk
http://seochat.sk/index.php
http://www.seochat.sk/index.php
Sám o sebe by rovnaký obsah na rôznych URL adresách ešte problém nebol. Problém nastáva až vtedy, ak sa niekto na váš web rozhodne odkazovať vo forme inej ako všetci ostatní (napr. bez www). Vtedy si totiž Google musí vybrať, čo bude zobrazovať ako hlavnú stránku vo výsledkoch vyhľadávania. V tomto je zväčša veľmi dobrý, pretože má dobré vodítko – množstvo a kvalitu spätných odkazov. Čo ale v prípade, keď pólka odkazov vedie na www a pólka na non-www verziu? Má to o niečo ťažšie…
Poviete si, že veď je to problém Google-u a vám je to jedno. No nemalo by… V prípade, že si Google vyberie za vašu hlavnú stránku verziu s www, tak odkazy, ktoré vedú na non-www verziu sa vám nezapočítavajú do rankingu (alebo aspoň nie v takej miere, ako keď to správne presmerujete). Touto nečinnosťou sa pripravujete o (niekedy aj veľký) odkazový potenciál.
Riešenie kanonického problému spočíva v presmerovaní pomocou 301 permanent redirect. Pre Apache servery je ideálne riešenie súbor .htaccess, ktorý umiestnite do koreňového adresára. Pre tých, ktorí netušia ako vytvoriť súbor .htaccess -> Súbor .htaccess vytvoríte trebárs aj v Poznámkovom bloku Windows, kde dáte „Uložiť ako“ a ručne vpíšete názov súboru .htaccess (áno, s bodkou na začiatku).
Presmerovanie non-www na www verziu pomocou .htaccess
Presmerovanie http://seochat.sk/hocaka-stranka.html na http://www.seochat.sk/hocaka-stranka.html sa nastaví v .htaccess nasledovne:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^seochat.sk
RewriteRule (.*) http://www.seochat.sk/$1 [R=301,L]
Ak chcete používať verziu bez www ako svoju hlavnú stránku, vložte tam toto:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.seochat\.sk$
RewriteRule (.*) http://seochat.sk/$1 [R=301,L]
Presmerovanie index.php
Niektorí webmasteri vám môžu odkazovať na index.php, preto je dobré aj toto presmerovať na vašu zvolenú hlavnú stránku (www alebo non-www verzia). Aby ste to dosiahli, vložte do .htaccess:
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ http://www.seochat.sk/ [R=301,L]
Tento príkaz vám presmeruje http://www.seochat.sk/index.php na http://www.seochat.sk. Úprava potrebná k presmerovaniu index.php na non-www verziu je už snáď zrejmá.
Čo sa dá ešte urobiť?
Ak používate Google webmaster tools, tak aj tam si máte možnosť vybrať, ktorú verziu stránok preferujete (Login -> Tools -> Set preferred domain). Po fixácii, ktorú som uviedol vyššie, to však nemá žiadny význam. Možno tak pre dobrý pocit… :)
Čo je však omnoho dôležitejšie, je to, aby ste si sami neodkazovali na niekoľko verzií stránok. Veľakrát sa stáva, že odkaz “Home” alebo “Hlavná stránka” v navbare/menu vedie na index.php alebo na verziu bez www (pričom preferovaná hlavná stránka je s www prefix-om). Preto neodkazujte na hlavnú stránku štýlom: <a href=”index.php”>Home</a> ale namiesto toho: <a href=”/”>Home</a>.
Ďalšie články z kategórie: SEO tipy a triky
Podobné články / mohlo by vás zaujať:- Htaccess polopaticky 2 - rôzne presmerovania 301 redirect
- Mýty o sitemap.xml
- Wordpress pluginy nielen pre SEO

November 11th, 2007 at 11:21 pm
beru sa ako rozdielne stranky aj
http://www.mojastranka.sk
http://www.mojastranka.sk/
?
na nejakom zahranicnom seo blogu (bohuzial link nemam) som nasiel ludi co s tym mali problem, rsp robili z toho problem.
November 12th, 2007 at 12:00 am
Nie. To, čo si napísal, duplicita nie je. Problém však môže nastať pri:
http://www.mojastranka.sk/konkretna-stranka
http://www.mojastranka.sk/konkretna-stranka/
V prvom prípade sa totiž jedná o súbor s názvom “konkretna-stranka” umiestnenom v koreňovom adresári a v druhom prípade ide o podadresár s názvom “konkretna-stranka”, z ktorého sa zobrazuje súbor index.php alebo niečo podobné.
November 12th, 2007 at 12:16 am
hej toto mi je jasne, ale ide mi skor o to, ci google rozlisuje stranky so znakom “/” na konci od rovnakych bez tohto znaku.
priklad typu
http://www.mojastranka.sk/konkretna-stranka
http://www.mojastranka.sk/konkretna-stranka/
moze hadzat rovnaku stranku (ako tomu je na par mojich projektoch) ked je cela url smerovana na index v korenovom adresari (a az ten urci aky obsah sa nasledne zobrazi) pomocov .htaccess
preto by som rad vedel ci mam osetrovat to “/” na konci a ked ano, ci je pesie ho tam nechavat alebo nie.
inak zisla by sa nejaka notifikacia ze niekto odpovedal na moj koment lebo som zabudol kde som toto cital a uz par minut som hladal ci mi niekto odpisal :)
November 12th, 2007 at 12:30 am
Už som ti na to odpovedal… Jedno je adresár a druhé je súbor. Z toho plynie, že môžu mať rôzny obsah a z toho plynie, že ich Google považuje za rôzne URL adresy. Takže áno, mal by si to ošetriť.
Ktoré je lepšie - s alebo bez lomeno “/” na konci? Z pohľadu vyhľadávačov v tom nie je žiadny rozdiel.
November 20th, 2007 at 10:58 am
tybi, ano mas pravdu, ze jedno je subor a druhe adresar, ale isto uznas, ze obidva naraz tam byt nemozu (aj subor aj adresar) a myslim si ze google bot nie je taky sprosty, ze by vtom robil rozdiel a berie do uvahy to, ze tam bude naraz aj subor, aj adresar (kedze to nieje mozne)
November 20th, 2007 at 11:31 am
Head, neuznám… pretože môžu tam byť obidva naraz. Čo ti bráni v tom, aby si vytvoril súbor v koreňovom adresári “priklad” a zároveň mal adresár “priklad” a v ňom index.php?
Je úplne správne, že to Google berie ako dve rôzne URL adresy. Ako je správne aj to, že http://seochat.sk je defaultne niečo iné ako http://www.seochat.sk .
Ak by niekto rád podrobnejšie vysvetlenie, prosím založiť fórum na tému na http://forum.seochat.sk
November 20th, 2007 at 12:10 pm
co mi vtom brani ?
~/public_html > touch priklad
~/public_html > mkdir priklad
mkdir: `priklad’ exists but is not a directory
to ze adresar je tiez len subor, cize nemozes mat dva subory s rovnakym menom ;) (dokonca ani na win)
stojim si za tym, ze tam nemoze byt aj subor aj adresar s rovnakym nazvom, dokaz opak ;)
November 20th, 2007 at 1:32 pm
Dokaz… daj do Google toto:
cache:http://www.squidoo.com/edi-news
cache:http://www.squidoo.com/edi-news/
Majú rozne cache, toť Google ich vidí, ako rozne URL adresy.
November 20th, 2007 at 2:38 pm
Hmm mas pravdu, ze to google berie ako dve rozne url, ale nemal by, pretoze ako som pisal, je to jasne, ze to bude to iste (kedze nemozes mat aj subor aj adresar s rovnakym menom), cudujem, sa ze na to google bot nepride, kedze aj obsah je identicky
November 20th, 2007 at 3:35 pm
:))) Mal by si ísť robiť do Google…
Posledný-krát to hovorím, sú to rozne URL adresy, može byť na nich rozny obsah, takže Google to robí správne.
Ak to neide priamo vytvorením súboru a adresára, tak to prepíšeš pomocou mod_rewrite-u, to je jedno… Fakt je, že na nich može byť rozny obsah, a basta. Ak chceš reagovať, možeš, ale len na forum.seochat.sk.
November 20th, 2007 at 7:13 pm
no len sa tak nerozculuj, ok beriem, mas pravdu su to rozne URL
howk ;)
November 22nd, 2007 at 10:12 am
co vravite na taketo riesenie pomocou PHP .. je to tiez OK?
php if ($_SERVER["HTTP_HOST"] == “domena.sk”) {
header(”Location: http://www.domena.sk“,TRUE,301);
exit;
}
November 24th, 2007 at 10:25 am
Skoro som na tento komentár zabudol :).
Playdude, nie, nie je to OK! Vaše riešenie presmerováva všetko bez www na hlavnú stránku. Lenže Vy chcete (mali by ste chcieť), aby to presmerovalo na príslušnú stránku s www prefixom). Teda… http://seochat.sk/sluzby/ by sa malo presmerovať na http://www.seochat.sk/sluzby/ a nie na http://www.seochat.sk/.
Pomocou php sa to robí takto:
if (substr($_SERVER['HTTP_HOST'],0,3) != ‘www’) {
header(’HTTP/1.1 301 Moved Permanently’);
header(’Location: http://www.’.$_SERVER['HTTP_HOST']
.$_SERVER['REQUEST_URI']);
}
November 28th, 2007 at 1:52 am
[...] po hrátkach s htaccess by ste si určite mali inštalovať Permalink redirect, ktorý rieši napríklad Hamletovský [...]
December 30th, 2007 at 12:03 pm
[...] takýmto spôsobom môžete mať 4 URL verzie, kde je obsah úplne rovnaký. Riešenie spočíva v presmerovaní non-www verzie na www (alebo naopak) a v redirect-e nelomena na lomeno (alebo [...]
Január 6th, 2008 at 11:53 am
Zdravim, mam problem s presmerovanim. Potrebujem totiz presmerovat subdomenu temadna.evolutionstudio.sk na http://www.temadna.evolutionstudio.sk
Pouzil som kod z vasich stranok, no nefunguje to…
Ked do prehliadaca napisem temadna.evolutionstudio.sk, tak ma to presmeruje na stranku http://www.temadna.evolutionstudio.sk/temadna/
nechapem preco… prosim o radu, vdaka:)
Január 6th, 2008 at 2:28 pm
Podľa mňa ti to už funguje… už si na to prišiel?
Pre subdoménu nedávaj htaccess súbor do rootu domény, ale do rootu subdomény, teda do adresára “temadna”. Myslím, že to bol tvoj problém.
Inak, pýtaj sa tu: http://forum.seochat.sk
Január 6th, 2008 at 2:56 pm
nechapem, nefunguje mi to stale… Tebe to ide??? Subor .htaccess mam v adresari subdomeny.
Ked mam ten kod takto, tak to je spravne?
RewriteEngine On
RewriteCond %{HTTP_HOST} ^temadna.evolutionstudio.sk
RewriteRule (.*) http://www.temadna.evolutionstudio.sk/1 [R=301,L]
Ked sme to tu uz zacali riesit, tak odpoviem sem, ale new otazky budem davat na forum, ok:)
Este raz vdaka za pomoc…
Január 6th, 2008 at 4:26 pm
Áno, máš to správne, checkni si to tu: http://www.webconfs.com/redirect-check.php
Found redirect to http://www.temadna.evolutionstudio.sk/. The Redirect is Search Engine Friendly.
Január 6th, 2008 at 6:27 pm
Nerozumiem tomu, ale uz mi to ide. Pritom som ale nic nemenil.
Nie je mozne, ze ked som sa hral a skusal veci s .htaccess, tak sa server nejak zle nastavil a potom chvilu trva, kym sa server dobre nadstavi, ked tam dam spravny subor .htaccess?? Hadam mi rozumiete:)
Január 17th, 2008 at 5:13 pm
[...] je pokračovaním seriálu htaccess polopaticky, ktorý sa mal skôr volať htaccess presmerovania polopaticky, keďže ostatné užitočné [...]
Marec 2nd, 2008 at 4:44 pm
ahoj mám problém:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^rohozkarna.com
RewriteRule (.*) http://www.rohozkarna.com/1 [R=301,L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.htm\ HTTP/
RewriteRule ^index\.htm$ http://www.rohozkarna.com/ [R=301,L]
toto sem vložil do .htaccess a to první nejde (redirect na www) ale druhé jde (domena.com/index.htm na domena.com)
může mi někdo říct kde sem udělal chybu?? děkuji
Marec 4th, 2008 at 12:14 am
Patrik, bez dalších informací netuším, jak je to možné… Zeptej se na fóru (forum.seochat.sk) a přidej tam celý obsah htaccess.
Máj 29th, 2008 at 10:37 am
[...] medzi rôznymi webmi. Dôvod je zrejmý… duplicita v rámci webu sa stáva aj “náhodou” a aspoň je ako originál označený text autora, kdežto duplikáty medzi stránkami sa [...]
November 18th, 2008 at 1:14 pm
[...] Tak ako u meta description, indexovaní flashu, či odporúčaní používať dynamické URL adresy, sitemap.xml slúži len na skrývanie problému, nie jeho riešenie. Ak chcete stránku indexovať, odkazujte na ňu. Ak chcete stránku indexovať často, meňte jej obsah. Ak chcete vyriešiť problém kanonických URL, použite presmerovania. [...]
Apríl 25th, 2009 at 9:49 am
Ja som mala problem s nastavenim .htaccess pre wordpress - po nastaveni presmerovania mal wordpress problem so zobrazovanim podstranok.. vyriesilo to:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
Máj 20th, 2009 at 5:36 pm
Chcel by som sa opytat na tuto direktivu:
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
Preco je tam vyber znakov v rozsahu {3,9} suvisi to nejak s nazvom domeny?
Vdaka
Máj 21st, 2009 at 1:21 pm
Jano, skús tu: http://forum.seochat.sk/programovanie/
Jún 6th, 2011 at 3:53 pm
Nerozumiem jednej veci a neviem ako to vplivnit.
Neviem preco mi WORDPRESS automaticky presmeruvava
http://www.uspornaziarovka.sk/forum
na
http://uspornaziarovka.sk/forum
Automaticky mi vyhadzuje WWW z URL i napriek redirectu 301 ktory tam mam. vie niekto poradit ?