Szép URL-ek Drupal-ban

Ez a cikk a Legjobb Drupal modulok sorozat legújabb része.

Tartalom

Bevezető
Alap Drupal beállítás
Pathauto
Global Redirect
Címváltozás és az RSS aggregátorok


Bevezető

Melyik a szebb webcím,
ez: http://edgarpe.hu?q=node/50
vagy ez: http://edgarpe.hu/Szep_URL_ek_Drupal_ban ?

A cél az, hogy az utóbbit használjuk, a keresőknek is jobb, a látogatóknak is. A látogatóknak azért, mert már a címből látják mi az, nem kell rákattintaniuk. Ez a cikk arról szól, hogy is lehet ezt elérni Drupalban.

Az alap Drupal, jó szokásának megfelelően, elvégzi helyettünk a munka nagy részét, és lefekteti az alapokat. Viszont ha kerek egész megoldást szeretnénk, akkor kiegészítő modulokra is szükségünk lesz. Egy tipikus hírportálnál én a Pathauto és a Global Redirect modulokat javaslom. Lássuk hogyan:


Alap Drupal beállítás

Két dolgot kell beállítanunk. Egyrészt be kell kapcsolni a rövid webcím (Clean URL-s) kezelést az admin/settings/clean-urls címen. Ehhez szükség van arra, hogy az apache webszerver figyelembe vegye a Drupal-hoz adott .htaccess fájlt. Ha nem apache alatt fut az oldal, vagy nem veszi figyelembe, akkor a dokumentációt ide vonatkozó részét érdemes böngészni.

Másrészt be kell kapcsolni a path modult az admin/build/modules címen.


Pathauto

Ez a modul az alap path modulra épít, automatikusan hozza létre az un. webcím álneveket, angolul URL alias-okat. 3 helyen fejti ki hatását:

  • A node-okhoz tud álneveket létrehozni, így a node/1234-ből pl. hir/hir_cime lesz.
  • Kategóriákhoz ad álneveket, így a term/1234 helyett kategoria/Sport lehet.
  • Végül a oldal látogatóinak profil címei is megváltoztathatóak, user/1-ről pl. felhasznalo/EdgarPE-re.

A modul beállítási oldalától nem kell megijedni, nagy az űrlap, de minden magától értetődő. Egy dologra kell odafigyelni: az ékezetes karakterek ékezetmentesítésére. A modulhoz adnak egy i18n-ascii.example.txt nevű fájlt, ezt át kell nevezni i18n-ascii.txt-re és átszerkeszteni. Az általam használt fájlt csatoltam:
[attachment:i18n-ascii.txt=i18n-ascii.txt]

A modul elérhető mind Drupal 5-höz, mind Drupal 6-hoz:
Pathauto


Global redirect

A Pathauto-val ellentétben, amely egy igen népszerű modul, a Global redirect-et viszonylag kevesen ismerik, pedig hasznos párja a fentinek.

Az álnevek használatával megjelenik az a probléma, hogy pontosan ugyanazt a tartalmat két különböző címen is el lehet érni. A fenti példánál maradva a node/1234 és a hir/hir_cime is érvényes lesz és ugyanazt fogja tartalmazni. Jobb lenne, ha az előbbi inkább egy átirányítás lenne az utóbbira. Ez a keresők szempontjából is fontos, de a felhasználóknak is zavaró lehet a két külön cím.

Ez a modul is elérhető mind az 5-ös mind a 6-os Drupal-hoz:
Global Redirect


Címváltozás és az RSS aggregátorok

A Pathauto modulban beállítható, hogy mi történjen ha megváltozik egy node címe és ezáltal a hozzá tartozó webcímnek (URL) is változni kellene.

Három lehetőségünk van: meghagyni a régi címhez tartozó URL-t, létrehozni újat és törölni a régit, vagy létrehozni újat és meghagyni a régit is. Én a legutolsót javaslom!

Ugyanis ha létrejön egy olyan URL ami eddig nem létezett, utána nem szerencsés megszüntetni azt. RSS aggregátor oldalak átvehetik az RSS-ből a címet, felhasználók RSS olvasói elmentik a gyorstárban és nem változtatják meg, linkelhetnek rá külső oldalak sőt még a keresők is beindexelhetik, ha pechünk van.

Egy nagyobb forgalmú portálom látogatottságának egy nagy részét ilyen RSS aggregátorok küldték, és ott nem volt megoldva ez a probléma. Egyik nap azt vettük észre, hogy lezuhant a látogatottságunk és nem értettük, hogy miért. Hamar kiderült hogy ezek a hírgyűjtő oldalak rossz címre mutatnak, amire a portál 404 error-t adott vissza. Akkor megtanultam, hogy egy létező URL-t soha nem szabad megszüntetni, még ha csak néhány másodpercig is létezett!

4 hozzászólás

Megjegyzendő, hogy a Global

Megjegyzendő, hogy a Global Redirect még mindig(?) nem megy rendesen az i18n-nel. Továbbá érdekes funkciója a Drupal6-nak, hogy hiába működik szép URL, ami a http://example.com/?q=node/6 címből http://example.com/szepvagyok címet csinál, ennek ellenére a tartalom elérhető a http://example.com/akarmi/?q=node/6, vagy akár a http://example.com/a/k/a/r/m/i/?q=node/6 címen is. S mivel a GR összeveszik az i18n-nel (végtelen ciklusban redirectel), ezért normális megoldást sem tudok egyelőre... Neked van valami ötleted?