Se sidan i fullversion.

Vikten av snygga URLer

evomaxx.se - 12 okt 2009 av i internet, teknik

Varför man bör använda t.ex. mod_rewrite för att skapa snygga adresser för användarvänlighet och sökmotoroptimering.

8 Pusha

  1. Profilbild

    Av cbsmth den 12 oktober 2009 Rapportera

    Väldigt bra skrivet inlägg, och den inlänkade guiden till mod_rewrite lär bli en livräddare i många situationer. Tack!  

  2. Profilbild

    Av U-Nas den 12 oktober 2009 Rapportera

    Fasen, jag får inte till det till min blogg på solsken.nu.. sjukt knivigt det där!  

  3. Profilbild

    Av nemrod den 12 oktober 2009 Rapportera

    Ove: det ser ut som Wordpress? I så fall har det ju inbyggt stöd, bara att aktivera och klistra in koden som visas i .htaccess, om inte det funkar så får du felsöka om mod_rewrite fungerar eller inte :)  

  4. Profilbild

    Av U-Nas den 12 oktober 2009 Rapportera

    @nemrod: Oj, nu tog jag illa upp :( Har köpt grunden av designen men kodat hela sidan på egen hand - varenda funktion. Inget jäkla wordpress där inte hehe :)
    Jag får försöka igen senare!  

  5. Profilbild

    Av nemrod den 12 oktober 2009 Rapportera

    Oj då, det var inte illa! Det var så bra att jag antog att det var WP, rätt likt upplägg också ;)
    Fråga gärna om du vill ha hjälp, t.ex. genom att kommentera på http://nemrod.se/guides/beautiful-urls-with-mod-rewrite-and-php :)  

  6. Profilbild

    Av U-Nas den 12 oktober 2009 Rapportera

    @nemrod: Jag tackar och bugar för komplimangerna!
    Det är mycket möjligt att jag kommer med en fråga.. jag har problemet att rubrikerna inte alls ingår i $_GET-variablerna.. så jag får testa att köra ditt exempel och lägga dem formaterade i databasen istället.. Återkommer :)  

  7. Profilbild

    Av nemrod den 12 oktober 2009 Rapportera

    Fördelen med att ha dem redan saniterade i databasen är att man slipper köra en funktion varje gång man vill omvandla titlarna från databasen till länkar eller från länkar till strängar som man kan jämföra mot datan i databasen. Jag gjorde så först, titlar konverterade on-the-fly i querystringen och inget databasfält. Det blev lång och jobbig kod och man var tvungen att skala i .htaccess istället för i PHP-koden om man ville ha fler värden i URLen. Det var efter att ha gått igenom allt det som jag bestämde mig för att göra som jag gjorde i guiden. :)  

  8. Profilbild

    Av U-Nas den 12 oktober 2009 Rapportera

    Nu har jag sparat alla saniterade rubriker i en egen rad i databasen.. men resten kan jag inte klura ut..
    nyhet.php hämtar ju vald nyhet genom SELECT * FROM nyheter WHERE ID = " . $_GET['id'] . ". Nu fastnade jag ordentligt :(  

  9. Profilbild

    Av nemrod den 12 oktober 2009 Rapportera

    WHERE sanitized_title (eller vad du döpte fältet till) = ' . $nyhet
    Där $nyhet är en variabel du har fått genom att splitta $_SERVER['REQUEST_URI'].
    "$uri = explode('/', $_SERVER['REQUEST_URI']);
    if(sizeof($uri) > 1 && !empty($uri[1]))
    $page = $uri[1];
    if(sizeof($uri) > 2 && !empty($uri[2]))
    $post = $uri[2];"
    Som jag skrev i guiden ;)

    Du kan använda querystring för att testa, då blir det bara $_GET['title'] eller vad du nu väljer att döpa den till istället för id (länkarna ska alltså använda det nya databasfältet istället för id-fältet)  

  10. Profilbild

    Av nemrod den 12 oktober 2009 Rapportera

    http://solsken.nu/nyhet.php?id=174 ska bli http://solsken.nu/nyhet.php?titel=hyresratt-fore-vinsttankande.
    Då blir queryn "SELECT * FROM nyheter WHERE sanitized_title=' . $_GET['titel']"
    Förstår du? :)  

  11. Profilbild

    Av U-Nas den 12 oktober 2009 Rapportera

    Okej, är lite närmare sanningen nu tror jag..
    Jag har gjort om länkarna så att de ser ut t.ex. såhär www.solsken.nu/hyresratt-fore-vinsttankande. URL:en laddas i browsern, men sidan jag ser är index.php enligt vad som står i .htaccess. Och det är den biten jag är helt lost på - jag kan inte ett smack om .htaccess :)  

  12. Profilbild

    Av U-Nas den 12 oktober 2009 Rapportera

    Jaha, jag kan inte få dem att se ut som jag skrev ovan?
    Genom att köra <a href="' . $row[sanitized_title] . '">»' . $row[rubrik] . '</a>
    ?  

  13. Profilbild

    Av nemrod den 12 oktober 2009 Rapportera

    <a href='?nyhet=', $row['sanitized_title'], ''> blir det för att få querystrings.
    För att få URLer som en trädstruktur så lägger du in mod_rewrite- och PHP-koden som är i guiden. Då kan du gå till solsken.nu/hyresratt-fore-vinsttankade.

    Det den mod_rewrite-koden gör är att kolla om mappen/filen finns (det gör den inte) och om inte lägger den till det efter index.php. I exemplet så blir adressen http://solsken.nu/index.php/hyresratt-fore-vinsttankande. Eftersom det inte är en normal querystring så måste du hantera URLen i PHP för att få ut värdena ($_GET funkar alltså inte). Det är som sagt på grund av skalbarhet och för att förenkla .htaccess-filen. $_SERVER['REQUEST_URI'] innehåller URLen som requestades, alltså efter omskrivning (index.php/hyresratt-fore-vinsttankande). Den delar (explode()) vi på '/' och får då en array där [0]='index.php' och [1]='hyresratt-fore-vinsttankande'.
    'SELECT * FROM nyheter WHERE sanitized_title=' . arrayen[1]  

  14. Profilbild

    Av nemrod den 12 oktober 2009 Rapportera

    Då blir länkarna <a href="/', $row['sanitized_title'], '">  

  15. Profilbild

    Av U-Nas den 12 oktober 2009 Rapportera

    Om jag ska tycka att det är värt besväret så måste länkarna kunna bli solsken.nu/rubrik-pa-nyheten.
    Hmm.. detta övergick mitt förstånd för ikväll. Jag tackar och bockar för ditt tålamod, inte alla som ställer upp på det viset!
    Jag gör ett nytt försök senare i veckan känner jag på mig :)  

  16. Profilbild

    Av nemrod den 12 oktober 2009 Rapportera

    Det blir det, men det första steget är att få ett fungerande gränssnitt mot databasen med titlarna över huvud taget, det är då enklast att använda querystrings som ingång. Det blir då enklare att testa så att SQL-queryn och länkarna verkligen blir som de ska. När det väl funkar är det bara att lägga på mod_rewrite och gå vidare till nästa steg i försnyggningsprocessen ;)

    Ingen orsak, kontakta mig gärna igen om du har fler frågor :)  

  17. Profilbild

    Av U-Nas den 15 oktober 2009 Rapportera

    @nemrod
    Nu har jag trixat i en timme och lyckats få så att artikeln nås på adressen
    solsken.nu/nyhet.php?id=hyresratt-fore-vinsttankande. Där visas det korrekt.

    Jag pekar från index.php på de olika artiklarna med adressen
    http://localhost/solsken.nu/hyresratt-fore-vinsttankande. Där visas istället "Server Configuration" för apache, altså den sidan jag kommer till om jag slår localhost.

    i .htaccess har jag följande
    RewriteEngine on
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.+)$ index.php/$i [L,QSA]

    Du är en klippa om du listar ut mitt nästa och avgörande steg :)  

  18. Profilbild

    Av nemrod den 15 oktober 2009 Rapportera

    @Ove
    Att du kommer till den absoluta roten är för att den mod_rewrite-koden är skriven för det. Om du ändrar RewriteBase till /solsken.nu/ så borde det funka bättre. .htaccess ska ligga i mappen solsken.nu då, för övrigt. Om inte det funkar så testa att lägga till solsken.nu framför index.php.
    För att köra i en undermapp sådär så måste du också öka heltalen i PHP-snippeten med exploderingen för att den ska hämta rätt värden. :)  

  19. Profilbild

    Av U-Nas den 15 oktober 2009 Rapportera

    Okej.. ska prova det. Men jag vet inte om jag är helt med på vad som händer här.
    1. Ska länkarna kodas så att de pekar på solsken.nu/rubrik-pa-artikeln eller
    2. ska de fortfarande skrivas som solsken.nu/nyhet.php?id=rubrik-pa-artikeln och sedan skriver .htaccess-filen om det till det nya?  

  20. Profilbild

    Av nemrod den 15 oktober 2009 Rapportera

    De ska vara med /, det mod_rewrite gör är att den gör om URLen som användarna skriver in (URLen i länkarna) till en intern URL som bara syns för PHP-koden som ska hantera den :)  

  21. Profilbild

    Av U-Nas den 15 oktober 2009 Rapportera

    Stoppa perssarna, det fungerar!!
    Jag kan inte tacka dig nog för hjälpen @nemrod, helt superbt! Nu ska jag bara föra över hela kittet från localhost till servern.. hehe :)  

  22. Profilbild

    Av uddabilder den 15 oktober 2009 Rapportera

    @nemrod bra artikel. På www.uddabilder.se kör vi givetvis med rena URL'er då den är byggd i Drupal som stödjer det från grunden. Ett problem är dock hur man gör med åäö, bör man använda det i URL'er eller stänga av det? Jag är villrådig på den punkten.  

  23. Profilbild

    Av nemrod den 15 oktober 2009 Rapportera

    @Ove Grattis :) Glad att jag kunde vara till hjälp.
    @uddabilder precis som wordpress då? :p Personligen tycker jag att man ska undvika åäö i URLer, till exempel därför att det ser förjävligt ut om det urlencodas :) känns som en onödig risk att ta att det blir konstigt någonstans  

  24. Profilbild

    Av U-Nas den 15 oktober 2009 Rapportera

    @uddabilder: En tanke är att göra åäö till aao istället för att använda ett bindesträck där. Blir mer läsligt med aao, tycker jag.
    @nemrod: Nu återstår att köra samma grej i menyn till höger :)  

  25. Profilbild

    Av uddabilder den 15 oktober 2009 Rapportera

    @nemrod ja, precis som wordpress kan man säga (fast med bredare fokus). De flesta seriösa cms'er borde ha det. Ja, det är därför jag undviker åäö och slipper %-tecken och annat.

    @Ove Ja håller med aao istället för åäö, men tyvärr får jag inte till det med de plugins jag har för tillfället. Skall kolla om det går hacka dom en aning för att få till det. Lycka till med ditt, positiv och snygg blogg du har!  

  26. Profilbild

    Av U-Nas den 15 oktober 2009 Rapportera

    @uddabilder: Ja, försök att ändra det om det går. Plugins och allt såntdär färdigskrivet var precis vad jag ville slippa när jag bestämde mig för att koda sidan själv istället för att köra med något som någon annan skrivit. Det har gått åt våldsamt många timmar, men samtidigt är det värt det i slutändan.
    Tack för tipset förresten, hittade det precis i tipsinkorgen :)  

  27. Profilbild

    Av U-Nas den 16 oktober 2009 Rapportera

    Sådärja! Nu fungerar det klockrent.. jag tackar än en gång @nemrod.
    Och om någon upptäcker ett fel så blir jag tacksam om ni rapporterar det :)  

Kommentera

Logga in eller bli medlem för att kommentera. Som medlem kan du även:

  • Posta eget innehåll
  • Pusha länkar och påverka vad som är hett
  • Bli vän med andra medlemmar och se deras aktivitet

Att bli medlem är helt gratis och tar bara några sekunder. Välkommen!

I en tv-show från 1994 undrar man vad internet är

youtube.com - 30 jan 2011 av Resedrommen i video, youtube, internet m fl

Vad är Internet? Det är frågan de ställer sig och diskuterar i programmet från 1994

33 Pusha

Rolig synkontroll genom datorn

lifehacker.com - 22 jul 2011 av johannes_96 i humor, kultur, livsstil m fl

Monroe eller Einstein: Ser du Einstein så behöver du troligen inte glasögon. Ser du Monroe så behöver du troligen glasögon. Ser du Einstein så korsa dina ögon för at... Läs mer »

25 Pusha

Facebookprofilen Timeline nu i Sverige, aktivera

revue.se - 15 dec 2011 av sebbe888 i humor, sport, samhälle m fl

Idag meddelade Facebook att man aktiverat profilen som även kallas för Timeline för alla sina användare. Efter att endast förut funnits i beta-stadiet är det nu dags för... Läs mer »

33 Pusha

Det handlar om mina och dina barns framtid!

youtu.be - 23 mar 2012 av ronnestam i framtid, sverige, ungdomar m fl

Det här var min keynote på Webbdagarna 2012. Håller du med? Pusha då!

36 Pusha

15-åring uppfann cancertest

svd.se - 22 aug 2012 av Arp i teknik, cancer, medicin m fl

En högstadieelev i USA har uppfunnit ett revolutionerande cancertest. Han gjorde det genom att googla sig till kunskap.

21 Pusha

Wii U får stöd av Unity

powergamer.se - 20 sep 2012 av TheJocketor i tv-spel, utveckling, humor m fl

Unity Technologies, utvecklarna av multi-plattform-motorn och utvecklingsverktyget Unity, gick idag ut med att man har skrivit under ett världsomspännande licensavtal med... Läs mer »

29 Pusha

Så blir du kreativ!

mittforetag.com - 6 nov 2012 av nyttforetag.com i starta eget företag, kreativ, motivation m fl

5 sätt att boosta motivationen. Använd dem direkt och känn hur du får energi att uträtta stordåd!

50 Pusha

Google Keep utmanar Ervernote

businessinsider.com - 21 mar 2013 av calle i callenet, teknik, evernote m fl

Vad tycker ni om Google Keep? Kommer Google att lyckas konkurrera med Evernote?

24 Pusha

Mobilen knappar in på datorn

outrider.se - 19 sep 2013 av Trygged i dator, mobil, samhälle m fl

En undersökning från comScore visar att mobilanvändandet knappar in mer och mer på datorn. Men inom vilka kategorier är egentligen mobilen starkast?

23 Pusha

Samsung får böta för astroturfing!

blogg.tkj.se - 25 okt 2013 av tkj i mobiler, samsung, teknik m fl

Samsung har fått motsvarande drygt 2,15 miljoner kronor i böter för att ha postat en massa positiva kommentarer om sina produkter på olika forum.

10 Pusha

Pusha körs i molnet hos ipeer

Vad är Pusha?

En sajt där medlemmarna bestämmer innehållet genom att posta och pusha (rösta på) länkar.

Bli medlem eller läs mer.

Roligt innehåll på andra sajter