keresőbarát urlek - htaccess vagy php?
Sziasztok!
Egy kis fejtágításra lenne szükségem urlekügyben. Próbálom az oldalamat fentebb csalogatni a googleben, és sok url a szokásos paraméterezett módon van megoldva (cikkek.php?cid=321), holott az adatbázisban ezeknek teljesen jól megfeleltethető rövid szöveges tartalmak találhatóak. Szeretnék az adatbázison alapuló keresőbarátabb urleket létrehozni. A kérdés tehát az, hogy hogyan lehet mysql adatokat bevonni a htaccesses átirányításokba. Be lehet? Ha nem ez a módja, akkor merre kéne elinduljak?
példa:
mysql táblában
id:133
title:"egy újabb cím"
Jelenleg az url valami ilyesmi: http://valami.hu/cikkek.php?cid=133
E helyett kéne valami ehhez hasonló: http://valami.hu/egy-ujabb-cim/
Kb mint egy wordpress blognál.
Mi a háttere az ilyen urleknek?
■ Egy kis fejtágításra lenne szükségem urlekügyben. Próbálom az oldalamat fentebb csalogatni a googleben, és sok url a szokásos paraméterezett módon van megoldva (cikkek.php?cid=321), holott az adatbázisban ezeknek teljesen jól megfeleltethető rövid szöveges tartalmak találhatóak. Szeretnék az adatbázison alapuló keresőbarátabb urleket létrehozni. A kérdés tehát az, hogy hogyan lehet mysql adatokat bevonni a htaccesses átirányításokba. Be lehet? Ha nem ez a módja, akkor merre kéne elinduljak?
példa:
mysql táblában
id:133
title:"egy újabb cím"
Jelenleg az url valami ilyesmi: http://valami.hu/cikkek.php?cid=133
E helyett kéne valami ehhez hasonló: http://valami.hu/egy-ujabb-cim/
Kb mint egy wordpress blognál.
Mi a háttere az ilyen urleknek?
Az adatbázisban minden
index.php
), itt dolgozd fel, majd keresd ki a megfelelő tartalmat a szöveges azonosító alapján.A .htaccess állományod valahogy így fog kinézni:
index.php
-ban ezek után a$_SERVER['REQUEST_URI']
változót kell vizsgáld.ez eddig stimmt
(Ezekről a link metákról van valahol jó leírás? Feszítem a húrt: esetleg magyarul? :) )
Nincs redirect
index.php
a tartalmat adatbázisban, azt egyből ki is szolgálja.nem világos még teljesen
Az url ettől hogy marad meg ilyennek: http://valami.hu/cikkek/lekert-cikk-cime/ ?
Minden kérést ugyanaz az
index.php
szolgál ki, nem almappákban lévők. A szerver átadja neki a kérést és az URL-t, te pedig az URL alapján eldöntöd, hogy milyen típusú tartalom (cikk, fórumtéma stb.) melyik példányát szolgálod ki, majd egyszerűen teszed a dolgod, ahogy szoktad. Természetesen nem kell az egész programodnak ebben az egy fájlban lennie: tetszés szerint felbonthatod, ahogy eddig, csak most nem közvetlenül hívják meg a különböző fájlokat, hanem te hívod meg őket azindex.php
-ban.egy konkrét példa két sor kóddal?
Így gondoljátok?
$urlpart-ban az url azon része van, amely meghatározza a tartalmat.
Be kell valljam, sosem csináltam olyan oldalt, ahol mindent az index szolgál ki, és lövésem sincs miként kéne.
Írnátok pár sor kódot példának? Gyanítom abból azonnal megérteném.
Pontosan így, természetesen
Esetleg megnézheted a népszerű keretrendszerek, tartalomkezelők kódját, manapság már szinte mindegyik így csinálja.
lassuak is :)
Utolsó kérdésem, ígérem: :D
Tegyük fel akkor hogy az index.php kezel le mindent. A beérkező kérésnél htaccess:
Még mindig nem érted, az
library/router.php:
Na erre volt szükségem.
Köszi a válaszokat, nekiállok meglátom mire jutok!
Természetesen ez így nem szép
Sokszor volt téma
http://example.com/c133-egy-ujabb-cim
c - cikk
133 - db id
ami utána van bármi lehet, figyelmen kívül van hagyva
Így szerepel a cím is benne emberbarát módon, és a DB-ben sem kell bajlódnod az azonsítóval (a cikk cím ugyebár lehet duplikált is).
Nem szerencsés
Egyértelmű URL-ek
És ha harmadik fél rájön, és
Harmadik fél
Akár itt a youtube URL-ek végén néha feltűnő feature=related rész, amit harmadik felek szivesen levágnak. Nem logikus, hogy ezt bármilyen jelnek tekintenék a tatalom minőségére. - Persze erre ellenérv lehet, hogy a querystring és a path nem egy súllyal esnek latba, de napjainkban, amikor a querystringet mindenféle path-oknek próbálják álcázni nem hiszem, hogy van lényeges eltérés a két rész feldolgozása között.
Persze, megoldható, csak az
Az én szépérzékem ettől
Persze hogy redunáns
A "cikkek" vagy inkább "cikk" nem tartalmaz a usernek értelmes információt, így nyugodt szívvel minimalizálható (és nem ez lesz az első lértelmes szó az URLben, ami ugye nem igazán keresőbarát).
A slash kontra kötőjel témában én sem vagyok biztos, régebben / válaszotta el a címet az azonosítótól, viszont így egy logikai szinttel hátrébb került a cikk címe. Amúgy gyakorlatiag nem tartom jelentősnek a különbséget.
Én ha nem akarok a szöveges
A „cikkek” már hogyne tartalmazna információt, a felhasználó számára egyértelművé teszi, hogy milyen tartalomról van szó. Arról nem is beszélve, hogy a cikkeket nyilván ki fogod listázni valahol, a lista és az egyes cikkek közt alá-fölérendeltség van, így van egyértelmű, hogy a lista a /cikkek oldalra fog kerülni. A cikkek rész megléte a felhasználóval azt is tudatni fogja, hogy a listát ott találja. Az URL-ek szemantikáját pedig a kereső pont ugyanúgy ismeri, mint a felhasználó, tehát ő is ugyanígy hasznosítani tudja, azt pedig a városi legendák közé sorolnám, hogy ez rontana a helyezésen, épp azért, mert a kereső is tisztában van vele, hogyan épül fel egy cím.
Szerintem
http://example.com/cikk/egy-ujabb-cim
http://example.com/oldal/egy-ujabb-cim
http://example.com/kereses/van-e-ilyen
Én erre esküszöm:)
A keresésnél a keresett
Ékezetes keresés?
Százalékkódolás, mi lenne.
Akkor ott állunk ahonnan
A lekérdezés a szintaktikája