Drupal a SEO II. - Čistá URL
Search Engine Optimization, česky „optimalizace pro vyhledávače“, je důležitá věc, kterou bychom neměli při tvorbě webu a jeho následné správě podcenit. My si v tomto článku povíme, jak na Drupalu zprovoznit tzv. „čistá URL“, které jsou běžnou součástí této optimalizace.
Upozornění: přechod na čisté URL nikdy nerealizujte na stávajícím webu, pokud nejste experti na to, co děláte. Vždy je implementujte jen na svých nových webech!
ShrnutíPoučka z minulého dílu: Co je dobré pro uživatele, je dobré pro vyhledávače. Hezká URL pomáhají hlavně uživateli dobře se zorientovat. Něco jiného je přece URL clanky/bezpecnost/chyba-v-imce nez node/123123. Nikdy to s hezkými URL nepřehánějte. Nic mne neodradí více, než URL jako /123-cialis-viagra-erekce-potence-promuze-muzi-super.html.
Jak fungují URL v DrupaluStandardním prostředkem pro vyjádření nějaké stránky je http://www.example.com/?…. Hodnota v proměnné q (vše za q=) je takzvaná path, cesta. Každá cesta v rámci Drupalu musí být unikátní, jednotlivé moduly a stránky definují vlastní cesty. Proto občas potkáte na webu takovéto URL:
PathVývojáři Drupalu naštěstí mysleli i na uživatele a administrátory, kteří chtějí hezké URL. Proto je přímo v jádru systému dostupný modul path. Stačí ho aktivovat na stránce admin/modules. Tím získáte možnost zvolit vlastní cestu k libovolnému obsahu. Při vytváření node se Vám objeví nastavení jménem Nastavení URL. Taková zvolená cesta nesmí začínat lomítkem, jinak může obsahovat v podstatě cokoliv.
Pro zajímavost: Jak se vyhledávače chovají k oddělovačům v URL? Standardně platí: _ podtržítko je spojovač, – pomlčka je oddělovač. Měli byste tedy pokud možno používat oddělovač, abyste rozlišili jednotlivá slova.
Dostali jsme se k bodu, kdy máme hezká URL, která ale ještě nejsou moc použitelná pro uživatele. Pamatujete? Co je dobré pro uživatele, … http://www.example.com/?… uživateli zas tolik práce neušetří.
Mod_rewritePro tento účel Drupal vytváří v kořenovém adresáři své instalace soubor .htaccess. Ten kromě jiného obsahuje následující řádky:
RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
Tyto pravidla říkají: Jakoukoliv URL (např. /admin/modules) převeď na index.php?q=/admin/modules. Udělej to ale pouze v případě, že neexistuje soubor nebo adresář s názvem /admin/modules. A jsme u toho. Vidíme naše staré známé ?q=cesta, ale uživatel vidí jen cesta. Chytré a mimochodem velmi bežné použití modulu mod_rewrite.
Toto nastavení však zatím není funkční, musíme provést jednu změnu v souboru .htaccess
- Otevřete si soubor
.htaccess
, který se nachází v adresáři, do nějž jste Drupal nainstalovali, a najděte tento řádek:#RewriteBase /drupal
- Změňte jej podle následujícího pravidla: odstraňte křížek, který značí, že řádek má být považován za komentář, a místo
/drupal
vložte relativní cestu k vaší instalaci Drupalu bez koncového lomítka (tedy například, máte-li Drupal na adrese http://www.example.com, pravděpodobně bude řádek vypadat následovně:RewriteBase /
, pokud na adrese http://www.example.com/my-web/, zkusteRewriteBase /my-web
).
Teď už jen stačí jít do Administrace → Nastavení → Obecná nastavení a u zatím nedostupné volby Čistá URL kliknout na odkaz Run the clean URL test. Pokud vše proběhne v pořádku, nebude Vám již Drupal bránit v aktivaci čistých URL.
Modul PathautoByla by ale otrava pro každý nový článek, anketu nebo nedejbože uživatele přidávat nový alias ručně. Proto také existuje modul Pathauto, který tuhle špinavou práci udělá za Vás. Stáhnout jej můžete již klasicky na webu, modulů a ani instalace se ničím neliší od normálu.
NastaveníNyní trochu teorie: Modul Pathauto automaticky generuje různá URL podle Vašich preferencí. Tyto preference se dají nastavit v Administraci → Nastavení → Pathauto. Pro jednotlivé typy obsahu máte možnost definovat různé „patterns“ – šablony. Můžete například pomocí šablony [user]/[yyyy]/[title] říci, aby pathauto vygenerovalo při vložení obsahu URL: uzivatelskejmeno/rok/titulek-nove-stranky, např. miloso/2006/jak-jsem-byl-na-chalupe. Důležitá nastavení:
- Separator: znak, který nahradí mezeru a ostatní interpunkční znaménka v URL, již jsme zmínili pomlčku.
- Update action: určuje, co se má dělat, pokud změníte nadpis u článku, pro nějž již existuje alias. První možnost ponechá starý alias, druhá vytvoří nový, ale starý ponechá, a třetí taktéž vytvoří nový, jenže starý smaže. Doporučuji alias neměnit!
- Pattern for all stránka/anketa/článek paths: formát aliasu pro jednotlivé typy obsahu. Pod tímto nastavením vidíte přehled proměnných, které můžete v URL použít (tedy nejen nadpis článku, ale třeba uživatele, který článek napsal, nebo datum publikování)
Zaujal Vás článek? Vyjádřete se k němu v diskusi!
na IC
skusal som to na IC ale aj ked je povolene pouzivanie htaccess tak mi test cistej adresi neprejde dobre a konci chybou:
Internal Server Error The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator, [no address given] and inform them of the time the error occurred, and anything you might have done that may have caused the error.
More information about this error may be available in the server error log.
___
Drupal 4.7.3
ic.cz bude asi jeden
ic.cz bude asi jeden z tech, co nepodporuji mod_rewrite. zmen hosting…
asi ti nezbyde nic jineho,
asi ti nezbyde nic jineho, nez provozovat pouze hezka url s ?q=, ale bez rewrite…
Super
tak doufám, že se mi to na novém hostingu taky podaří zapnout a poběží to v klidu… :-) zatím, jsem na čistá url neměl nějak štěstí… a že bude i následovat, jak dobře nastavit robots.txt, aby si google nenačítal stránky dvakrát a nevyhazoval je za dublování…
Luke
Neexistuje nic lepšího, než je Apple MacBook Pro
HR can be FUN