Avatar billede walkie84 Nybegynder
16. oktober 2008 - 15:17 Der er 27 kommentarer og
2 løsninger

Ny url per nyhed

Hej allesammen,

Jeg beklager den mærkelige titel, men jeg ved simpelthen ikke hvordan jeg skal beskrive det kort :)

Jeg er ved at lave et nyhedsscript hvor hver gang der bliver oprettet en nyhed, skal linket til nyheden være som om nyheden ligger i en ny mappe.

F.eks. hvis jeg har en side der hedder www.bla.dk og opretter en nyhed hvor titlen er "Test nyhed", så skal linket til netop den nyhed være: www.bla.dk/Test_nyhed/

Grunden til at jeg vil have det således, er at få en bedre søgeoptimering :)

Håber at i forstår mit spørgsmål!
Avatar billede w13 Novice
16. oktober 2008 - 15:24 #1
Det vil man som regel løse i .htaccess-filen.

F.eks. at når man kigger i mappen www.bla.dk/artikler/noget så er "noget" navnet på artiklen - og adressen der så hoppes til vil i virkeligheden måske være www.bla.dk/artikler/index.php?titel=noget
Avatar billede majbom Novice
16. oktober 2008 - 15:24 #2
du skal nok igang med noget url-rewriting: http://phpartikler.dk/artikler/htaccess.php

og så kan du jo gemme bruge titlen som et unikt navn og hente nyheden ud fra den.
Avatar billede w13 Novice
16. oktober 2008 - 15:25 #3
Dvs. man opretter ikke en ny mappe, .htaccess fortolker bare url'en og kigger på den rigtige adresse.

I øvrigt fremgår det ikke helt tydeligt af dit spørgsmål, hvad du rent faktisk søger hjælp til. =)

Overskriften er dog langt bedre end bare "Hjælp mig" eller "Problem", som nogle af og til skriver. :P
Avatar billede walkie84 Nybegynder
16. oktober 2008 - 15:47 #4
Jeg prøver at forklare lidt bedre så ;)

Jeg kan sagtens selv lave nyhedsscriptet, men kun sådan er linket til en nyhed f.eks. er www.bla.dk/news.php?id=34214 , og ikke hvordan man kan se det som www.bla.dk/news/34214/.

Det er muligt at splazz har ret i at jeg skal have fat i noget URL rewriting. Hvis jeg bruger det, står der så det gamle link (news.php?id=34214) eller det nye (/news/34214/) i statusbaren når jeg flytter musen over et link?!?
Avatar billede walkie84 Nybegynder
16. oktober 2008 - 15:48 #5
Jeg er en stor klump til at forklare mig ordentligt, når jeg ikke ved hvad jeg taler om!! :P
Avatar billede w13 Novice
16. oktober 2008 - 15:55 #6
Jeg og Splazz foreslår i virkeligheden det samme. Det fungerer sådan, at du i din .htaccess fil sætter serveren til at forstå en adresse såsom www.bla.dk/news/34214 som om der stod www.bla.dk/news.php?id=34214

Så siden ligger i virkeligheden og hedder news.php?id=34214 og den kan du selvfølgelig godt linke til stadig, men du kan nu også linke til /news/34214 og få det samme resultat. Det betyder, at hvis du ikke ønsker det, behøver der ikke stå news.php nogen steder på din side. Og derved kommer den heller ikke på søgemaskinerne.

For at det skal være godt søgemaskinemæssigt dur det dog ikke at skrive www.bla.dk/news/34214 - det skal være www.bla.dk/news/tekst_her_bla_bla
Avatar billede w13 Novice
16. oktober 2008 - 15:55 #7
Dét er URL Rewriting.
Avatar billede walkie84 Nybegynder
16. oktober 2008 - 16:19 #8
Ja det skal nemlig være titlen som står der :)

Men nu har jeg så nok brug for et eksempel på hvad der skal stå i .htaccess filen..
Jeg har læst den artikel som du linkede til splazz, og ud fra den er jeg kommet frem til noget i stil med nedenstående:

Hvis jeg har en nyhed liggende på www.bla.dk/news.php?title=Test_nyhed

Skal der i .htaccess stå :

RewriteEngine on
RewriteRule news.php?title=^$ /news/$1

Eller hvordan får man den til at matche alt efter title=    ??
Avatar billede walkie84 Nybegynder
16. oktober 2008 - 16:23 #9
Måske der skal * ind?? :P
Avatar billede w13 Novice
16. oktober 2008 - 16:28 #10
Du kan jo lige se, om du kan få denne til at virke kun med tal:

RewriteEngine on
RewriteRule ^/news/([0-9]+)/$ /news.php?title=$1

Så kan vi tilføje bagefter, så den kan understøtte andet også. Det er meget godt lige at vide, om det simple virker først. =)
Avatar billede walkie84 Nybegynder
16. oktober 2008 - 16:30 #11
Ja, det er en god ide.

Det bliver først om nogle timer, da jeg skal hjem fra arbejde nu og lave mad etc..
Skriver herinde senere - tak indtil videre :)
Avatar billede walkie84 Nybegynder
16. oktober 2008 - 19:07 #12
Så er jeg tilbage..

Jeg har lige prøvet at indsætte det som du skrev i .htaccess, men det sker der intet ved.
Så vidt jeg kan se, så tager dit eksempel også /news/21/ og laver om til /news.php?title=21  hvilket er omvendt af hvad jeg vil have :)

Er jeg helt forkert på den?
Avatar billede majbom Novice
16. oktober 2008 - 19:21 #13
hvis du vil have mulighed for at lave et link der linker til dinside.dk/news/21 som så rent faktisk svarer til dinside.dk/news.php?title=21 - så ser det rigtig nok ud, det w13 kommer med...

så hvis du skriver det i din .htaccess, burde du komme ind på din news.php side og får title 21 med, når du skriver dinside.dk/news/21 i adresselinjen...
Avatar billede majbom Novice
16. oktober 2008 - 19:22 #14
jeg ville nok lave den sådan her:

RewriteRule ^/news/([0-9]+)/?$ /news.php?title=$1

så kan skråstregen efter tallet være der eller lade være...
Avatar billede w13 Novice
16. oktober 2008 - 19:29 #15
Som Splazz siger, så er du lidt forkert på den, ja. =)

Med vores eksempler tager den jo adressen /news/21/ og laver den om til /news.php?title=21, og det er præcis det, vi er ude efter.

At når man skriver /news/21, så skal den i virkeligheden tolke den, som om, der stod /news.php?title=21. Så det er skam rigtigt nok. =)
Avatar billede walkie84 Nybegynder
16. oktober 2008 - 20:09 #16
aah ok, jeg tænkte på det omvendt..! Men nu forstår jeg :)

Jeg har ændret til nedenstående, da min testside hedder
www.domæne.dk/2nice/home.php?id=16

RewriteRule ^/2nice/news/([0-9]+)/?$ /2nice/home.php?i=$1

Når jeg så i adressefeltet skriver www.domæne.dk/2nice/news/16/ så skriver den bare Not Found..
Avatar billede majbom Novice
16. oktober 2008 - 20:41 #17
hvor ligger .htaccess-filen? ligger den i samme mappe som 2nice ligger i?

prøv evt. at fjerne skråstregen efter ^
Avatar billede w13 Novice
16. oktober 2008 - 20:49 #18
Ja, det er vigtigt hvor .htaccess-filen ligger. Det kunne lyde som om, den prøver at finde www.domæne.dk/news.php, når den burde finde www.domæne.dk/2nice/news.php.
Avatar billede walkie84 Nybegynder
16. oktober 2008 - 20:55 #19
.htaccess ligger i roden af domænet :)
Avatar billede w13 Novice
16. oktober 2008 - 20:56 #20
Og filen /2nice/home.php findes? :)
Avatar billede walkie84 Nybegynder
16. oktober 2008 - 21:11 #21
ja det gør den :P

Nu har jeg følgende stående:

RewriteEngine on
RewriteRule ^2nice/news/([0-9]+)/?$  /2nice/home.php?i=$1

og nu bliver siden vist, men selvom jeg ændrer tallet til et andet, så viser den kun den sidste post..
Avatar billede w13 Novice
16. oktober 2008 - 21:12 #22
Prøv at echo'e på siden, hvad i indeholder.
Avatar billede walkie84 Nybegynder
16. oktober 2008 - 21:19 #23
hah, tak fordi du nævnte "i".. Der skal selvfølgelig stå "id"!

Det virker perfekt nu.. Tusind tak :) Skriv et svar!
Avatar billede w13 Novice
16. oktober 2008 - 21:26 #24
Med på en deler, Splazz?
Avatar billede walkie84 Nybegynder
16. oktober 2008 - 21:50 #25
Det ville nok være fair nok :)
Jeg venter til i morgen, og så giver jeg point til dem som har skrevet ;)

Tusind tak for hjælpen mates!
Avatar billede majbom Novice
17. oktober 2008 - 08:16 #26
ja det er så i orden ;)

og velbekomme
Avatar billede w13 Novice
17. oktober 2008 - 11:47 #27
Tak for points!
Avatar billede majbom Novice
17. oktober 2008 - 11:54 #28
ja, tak for dem :)

go' weekend
Avatar billede walkie84 Nybegynder
19. oktober 2008 - 00:33 #29
Lige over!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester