Avatar billede foxmulder58 Praktikant
16. januar 2006 - 22:36 Der er 7 kommentarer og
1 løsning

Søgevenlige dynamiske URL`s

Hej Eksperter,

Jeg har i en side inkluderet indhold via include funktionen i PHP.

Denne metode giver som bekendt disse URL angivelser til dokumentet:


/index.php?id=ihm


Hvordan kan man gøre disse mere søgemaskine venlige?


mvh
Mads
Avatar billede elskermad.dk Nybegynder
16. januar 2006 - 22:49 #1
Via htaccess-filen...

Hvis din server understøtter htaccess og rewritemodulet kan du lave en fil der hedder .htaccess og smide den i roden med følgende indhold:




RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-F

RewriteRule ^([a-zA-Z0-9]+)/?$ /index.php?id=$1




Så kan du kalde dine sider med /ihm hvor den så bruger indholdet fra index.php?id=ihm
(Vær opmærksom på at der kun kan bruges almindelige bogstaver og tal i dette eksempel
Avatar billede foxmulder58 Praktikant
16. januar 2006 - 23:01 #2
kan du forklar mig hvordan den PHP kode fungerer. Dernæst smide et svar for at få point.


mvh
Mads
Avatar billede elskermad.dk Nybegynder
17. januar 2006 - 08:44 #3
Det er ikke php kode - virker det for dig?

Jeg kan sådan set ikke forklare dig det 100%, men første linie starter modulet som gør det muligt at manipulerer med adresserne. Anden linie (RewriteCond) angiver at efterfølgende regler skal gælde hvis det filnavn man skriver i adressen linien ikke findes. Fx vil du stadig kunne tilgå en mappe /billeder hvis den findes.

Tredje linie er den som angiver hvordan du gerne vil have din adresse til at se ud. ^([a-zA-Z0-9]+)/?$ er en reg.exp. (som jeg er ikke er god til) men den fortæller at hvis adressen ser ud som følgende: /tal_og_bogstaver evt. afsluttet med en / skal sendes til /index.php?id=$1 hvor $1 er det der vil stå mellem parantesserne!

Altså ikke for godt forklaret, men bedre er jeg ikke inde i det :S
Avatar billede foxmulder58 Praktikant
17. januar 2006 - 09:20 #4
Hej elskermad_dk,

nej det er fordi jeg i en opgave har lavet dise Dynamiske sider. Derfor kunne jeg godt tænke mig at vide hvordan man løser denne problemstilling.



Du behøver ikke gå i detaljer omrking dette.


PS! hvis det ikke er PHP kode hvad slags kode er det så?



Mvh
Mads
Avatar billede elskermad.dk Nybegynder
17. januar 2006 - 09:48 #5
jeg ved ikke hvad det bliver kaldt, men det er htaccess kode vil jeg gå ud fra :)
Avatar billede foxmulder58 Praktikant
17. januar 2006 - 15:12 #6
ok!

Tusind tak for hjælpen.

mvh
Mads
Avatar billede elskermad.dk Nybegynder
17. januar 2006 - 15:25 #7
det var så lidt :-)
Avatar billede fixxxer Nybegynder
18. januar 2006 - 02:39 #8
Hvis det skal kaldes noget, er det Apache-konfiguration for den valgte VirtualHost..


Umiddelbart kunne du gøre noget lignende:

$aliaser = array('enside'=>'side1.php',
                'nogetandet/siden'=>'side2.php');

if ($aliaser[$_GET['id'])) {
    include($aliaser[$_GET['id']);
}


Umiddelbart ville jeg nok ikke bruge id i querystringen til at overfører et side-navn, men det er jo en smagssag..

Hvis brugeren skriver www.domæne.dk/enside vil siden side1.php blive inkluderet.

Det du skal være opmærksom på, hvis du vil lave trailing diretories, så skal alle dine henvisning til billeder, css, javascript etc. være absolute, dvs. i de fleste tilfælde

<img src="/images/billede.jpg"> i stedet for almindeligvis <img src="images/billede.jpg">

Prøv at kig på www.go2italy.dk, her har jeg sat et sådan system op..
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