Avatar billede Slettet bruger
19. september 2004 - 12:35 Der er 9 kommentarer og
1 løsning

Mod Rewrite hjælp

Hej!

Jeg har en række sider som jeg kalder med f.eks. index.php?pid=2

Jeg vil nu gerne lave en .htaccess fil der sørger for at jeg kan bruge "pæne URL's" så som:

/hjælp skal vise index.php?pid=2
/en test side skal vise index.php?pid=33

osv.

Jeg har tænkt mig at lade mit CMS skrive til .htaccess filen hver gang der ændres på en sides pæne URL, og forestiller mig at man godt kan have flere Rewrite conditions i samme .htaccess fil.

Hvordan skal min rewrite condition se ud? Jeg skal vel have flere?

Jeg vil tro det er noget i stil med det her:

RewriteEngine On
RewriteBase /cm3
RewriteCond %{REQUEST_FILENAME} !-F

RewriteRule ^(tester/)            /?$ index.php?pid=0
RewriteRule ^(hjælp/)            /?$ index.php?pid=2
RewriteRule ^(en test side/)            /?$ index.php?pid=33

(jeg ved godt syntaksen ikke er iorden, men jeg gætter bare)
Avatar billede Slettet bruger
19. september 2004 - 12:42 #1
Jeg har også brug for at man kan taste f.eks.

/en/side/med/undersider og bestemme hvad den skal vise, f.eks. index.php?pid=6
Avatar billede htm Nybegynder
19. september 2004 - 12:46 #2
RewriteEngine On
RewriteBase /cm3
RewriteCond %{REQUEST_FILENAME} !-F

RewriteRule ^tester/$  /index.php?pid=0
RewriteRule ^tester2/$  /index.php?pid=2

Skal lige nævnes, det er ikke smart at bruge æøå og mellemrum til din navigation og pæne urls. Du vil sikkert løbe ind i problemer med det :)

RewriteBase betyder hvilket bibliotek der skal tages udgangspunkt i så det eks. der vil være: http://www.domain.dk/cm3/tester ==> http://www.domain.dk/cm3/index.php?pic=0

I din RewriteRule behøver du ikke paranteserne, da det bruges til at refere til den tekst som en variabel, så hvis du ville bruge det i din adresse. eks index.php?navn=$1
Avatar billede Slettet bruger
19. september 2004 - 12:51 #3
Jeg har nu lige testet, og får en 404 fejl når jeg kalder

http://dcclub.dyndns.dk/cm3/tester
Avatar billede Slettet bruger
19. september 2004 - 12:52 #4
Jeg fandt noget på nettet der ligner:

# BEGIN FAKED FOLDERS RULES
RewriteRule ^contact/?$ \
index.php?pid=1 [QSA]
# END FAKED FOLDERS RULES

Men kan jeg bruge det til flere fake mapper?
Avatar billede htm Nybegynder
19. september 2004 - 12:55 #5
Kig i din error.log for at se hvilken url den forsøger at tilgå med http://dcclub.dyndns.dk/cm3/tester, dog kan jeg sige at den ikke vil virke med den sætning du har brugt hvis du bare hat kopieret mit eks. der skal du have / med i enden. For at undgå det skal du Definere den som sådan:

RewriteRule ^tester/?$  /index.php?pid=0
Avatar billede Slettet bruger
19. september 2004 - 12:56 #6
Fino vino, nu virker det perfekt :)
Avatar billede htm Nybegynder
19. september 2004 - 12:58 #7
Det er faktisk det samme du har den i det eks. - eneste forskel er at der er tilføjet [QSA] bagved - det gør at den appender i din querystring - så hvis du skriver
http://dcclub.dyndns.dk/cm3/tester/?a=b vil den appende det til din url.

Sådan mener jeg i hvert fald det er :-)
Avatar billede htm Nybegynder
19. september 2004 - 12:59 #8
udemærket :)
Avatar billede Slettet bruger
19. september 2004 - 13:07 #9
Tak for den gode hjælp :)
Avatar billede htm Nybegynder
19. september 2004 - 13:13 #10
Velbekommen :) og tak for point.
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
Uanset kodesprog, så giver vi dig mulighederne for at udvikle det, du behøver.

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