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!

Microsoft Edge: Cross Device Sync

ruggedinformer.com - 12 dec 2017 av riversswe i tv-spel, teknik, spel m fl

Microsofts Edge låter dig obehindrat synka allt från favoriter till lösenord, helt sömlöst mellan dina enheter.

18 Pusha

Qvaq – När du vill mer än att kvittra

rickyryden.se - 3 sep 2009 av rickyryden i webbtjänster, teknik, internet

För ett tag sedan så lanserade Pusha-gänget den nya tjänsten Qvaq och nu har jag provat den så pass länge så att jag vill skriva av mig lite om tjänsten och hur jag uppfa... Läs mer »

18 Pusha

Spotify finns nu i App Store

rickyryden.se - 7 sep 2009 av rickyryden i apple, teknik, internet

Pushas användare anser att snarlik länk redan postats

Idag släpptes äntligen Spotify-applikationen i App Store! Applikationen är gratis, men man måste ha en premium-prenumeration av Spotify för att kunna lyssna. Det fungerar... Läs mer »

5 Pusha

Spelundret kom av sig

dn.se - 11 sep 2009 av moin i internet, kultur, teknik

Det svenska dataspelsbranschen är tilltufsad. Spelförsäljningen faller i USA och svenska spelutvecklare tvingas säga upp personal.

24 Pusha

Det rör sig inom Onlinefilmen

computersweden.idg.se - 16 sep 2009 av normalve i kultur, teknik, internet

Snart har ett år gått sedan Spotify lanserades för en större publik. Det börjar stå klart hur musiktjänster på nätet ska se ut för att fungera.

8 Pusha

Spotify behöver uppdateras

stacken.tnyholm.se - 17 sep 2009 av Hermano i spotify, teknik, internet

Nu när spotify har kommit till iPhone och Android-mobiler och kommer snart att komma till vanliga mobiler, så börjar programmet bli en helhetslösning för musik. Man har d... Läs mer »

14 Pusha

Pusha-bloggen: Amazon S3 och CloudFront (Nördigt)

blogg.pusha.se - 29 sep 2009 av murtlest i nördigt, internet, teknik

Ett nytt nördigt inlägg där vi berättar om hur vi använder Amazon S3 och CloudFront på Pusha.

15 Pusha

Med Twitter API gör man coola mashups

mjukvara.se - 3 okt 2009 av Christian i internet, teknik

Twitter API är en av de mest använda API.erna(tror jag). Här skriver jag om coola tjänster som använder Twitters API för att ändra på världen, en aning. Min favorit är Tw... Läs mer »

22 Pusha

Collecta: Websökning i realtid

collecta.com - 9 okt 2009 av thodah i teknik, internet

Collecta är en annorlunda sökmotor som låter dig söka efter vad folk säger på t.ex. Twitter i realtid.

8 Pusha

Tekniken som skyddar din teknik

teknikkonsument.se - 12 okt 2009 av maf i internet, teknik

Så skyddar du din dator mot virus och andra hot. Enkel nybörjarguide.

13 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