Avatar billede elskermad.dk Nybegynder
29. august 2005 - 15:53 Der er 10 kommentarer og
1 løsning

ReWriteRule - forskellige filer efter tekst?

hej eksperter!

jeg kunne godt tænke mig lidt hjælp til en rewrite rule.

jeg har denne her:
RewriteCond %{REQUEST_FILENAME} !-F
RewriteRule ^[a-z_]+/([0-9]*)/[^/]*/?$ /shop/vis.php?kat=$1

men kunne godt tænke mig at man kunne dele den lidt mere op efter tekst og gøre den mere avanceret!

altså som nedenstående:

/4324/sovs.htm => /shop/vare.php?id=4324
/kategori/342/mad.htm => /shop/vis.php?kat=342
/info/64/reception.htm => /text.php?id=64
/image/987/flagstang.gif => /image.php?id=987

altså den skal udfra første del finde ud af hvilken fil det er, anden del hvilket id den har, og det fiktive filnavn til sidst er "ligegyldig" (skal blot være der for at søgemaskiner bliver gladere :)

håber det er forståeligt hvad jeg mener, ellers må i lige spørge :)

Anders
Avatar billede fangel Nybegynder
02. september 2005 - 15:07 #1
Relativt simpelt ;)

RewriteCond %{REQUEST_FILENAME} !
RewriteRule ^([0-9]+)(/[.]+)?$ /shop/vare.php?id=$1
RewriteRule ^/kategori/[([0-9]+)(/[.]+)?$ /shop/vis.php?kat=$1
RewriteRule ^/info/[([0-9]+)(/[.]+)?$ /text.php?id=$1
RewriteRule ^/image/[([0-9]+)(/[.]+)?$ /image.php?id=$1

Det den gør er basicly at tillade at der må stå "/noget" bagefter linket (men behøves ikke være der), men stadig laver rewrites...

Fangel
Avatar billede fangel Nybegynder
02. september 2005 - 15:08 #2
hov, !-F gik vidst lidt galt.. det skal slf være

RewriteCond %{REQUEST_FILENAME} !-F

Fangel
Avatar billede fangel Nybegynder
02. september 2005 - 15:14 #3
var vidst ik helt vågen, det skal også være

RewriteRule ^/kategori/([0-9]+)(/[.]+)?$ /shop/vis.php?kat=$1
(der var en [ midt i det hele)

Fangel
Avatar billede fangel Nybegynder
02. september 2005 - 15:15 #4
*host*, jeg kan slet intet idag.. bahh
den samme fejl er der i de to sidste, fjern den første "[" efter den anden "/", ligesom på den linje jeg rettede

Fangel
Avatar billede elskermad.dk Nybegynder
02. september 2005 - 15:51 #5
jeg synes ikke rigtigt jeg kan få det til at virke :S

jeg har skrevet den således:

RewriteCond %{REQUEST_FILENAME} !-F

RewriteRule ^([0-9]+)(/[.]+)?$ /shop/vare.php?id=$1
RewriteRule ^/kategori/([0-9]+)(/[.]+)?$ /shop/vis.php?kat=$1
RewriteRule ^/info/([0-9]+)(/[.]+)?$ /text.php?id=$1
RewriteRule ^/image/([0-9]+)(/[.]+)?$ /image.php?id=$1
RewriteRule ^/thumb/([0-9]+)(/[.]+)?$ /image.php?id=$1&type=thumb

hvis jeg skriver /12 så får jeg fint /shop/vare.php?id=1, men hvis jeg skriver /12/ eller /12/tuborg.htm får jeg en 404-fejl, og de skal også gerne virke...

ved kategori kan jeg ikke få den til at virke lige meget hvad jeg gør (fejl 404 og /shop/vare.php findes!) og ved image og thumb er det som om den ikke smider id'et med over i image.php :S (den skal hentes med $_GET['id'] i image.php, ikk?
Avatar billede elskermad.dk Nybegynder
12. september 2005 - 12:17 #6
håber du kommer med et nyt svar engang :P
Avatar billede fangel Nybegynder
12. september 2005 - 18:14 #7
Du kan jo prøve

RewriteRule ^([0-9]+) /shop/vare.php?id=$1
RewriteRule ^/kategori/([0-9]+) /shop/vis.php?kat=$1
RewriteRule ^/info/([0-9]+) /text.php?id=$1
RewriteRule ^/image/([0-9]+) /image.php?id=$1
RewriteRule ^/thumb/([0-9]+) /image.php?id=$1&type=thumb

Men, det er jo en helt alm. RegExp, så du kan også bare lege lidt med det selv - tjek evt. http://regexp.info

/F
Avatar billede elskermad.dk Nybegynder
12. september 2005 - 18:52 #8
jeg kan intet reg.exp men ville sindsygt gerne lære det!
har ikke kendt det link før - prøver at kigge derinde :)
du har evt. ikke nogen guides på dansk?
og så ska du lige have smidt et svar :P
Avatar billede fangel Nybegynder
12. september 2005 - 19:34 #9
Kender ikke rigtigt til nogle danske guides - nej

Denne guide: http://phpbuilder.net/columns/dario19990616.php3?aid=46 er også ganske god (den er skrevet til PHP, men konceptet "regexp" er det samme

/F
Avatar billede bitkid Nybegynder
13. september 2005 - 10:00 #10
Jeg kan anbefale dig at læse "Mastering Regular Expressions" af "Jeff Friedl" - kortlink.dk/22gh

Jeg har selv læst den og den er helt kanon. Man får et dybt indblik i hvad man kan og specielt hvad man ikke kan med regular expressions.
Avatar billede fangel Nybegynder
14. september 2005 - 15:22 #11
Ja, det er en virkeligt god bog...

/F
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