Avatar billede rthuls Nybegynder
02. november 2004 - 08:13 Der er 11 kommentarer og
1 løsning

hjælp til mod rewrite

Jeg har snuppet det nedenstående fra mbn's mode rewrite eksempler.

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-F
RewriteRule ^([^/]+)/([^/]*)/?$ /?katid=$1&id=$2

Men jeg har opdaget at hvis man skriver:
http://127.0.0.1/foo

så virker det ikke, hvorimod:
http://127.0.0.1/foo/

virker fint.

Er der nogen der kan omskrive rewrite reglen så den virker i begge tilfælde?
Avatar billede schaefner Juniormester
02. november 2004 - 08:19 #1
Prøv:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-F
RewriteRule ^([^/]+)/?([^/]*)/?$ /?katid=$1&id=$2
Avatar billede sukos Juniormester
02. november 2004 - 08:23 #2
Og ellers

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-F
RewriteRule ^([^/]+)/([^/]*)?$ /?katid=$1&id=$2
RewriteRule ^([^/]+)/([^/]*)/?$ /?katid=$1&id=$2

Tror jeg da! :O)
Avatar billede schaefner Juniormester
02. november 2004 - 08:23 #3
Men hvis den ikke skal have underkategorier (/foo/sub/), burde du bare kunne skrive:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-F
RewriteRule ^([^/]+)/?$ /?cat=$1
Avatar billede schaefner Juniormester
02. november 2004 - 08:25 #4
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-F
RewriteRule ^([^/]+)/([^/]*)$ /?katid=$1&id=$2
RewriteRule ^([^/]+)/([^/]*)/?$ /?katid=$1&id=$2
Avatar billede rthuls Nybegynder
02. november 2004 - 09:22 #5
Tak for jeres forslag, jeg tester dem senere i dag, når jeg får fri.

schaefner>> den skal også have underkategorier.
Avatar billede thorus Nybegynder
02. november 2004 - 10:08 #6
Her er også en metode du kan lave det på
http://www.phpuniverset.dk/show_artikels.phtml?ArtikelID=24
Avatar billede rthuls Nybegynder
02. november 2004 - 10:53 #7
Nå, nu fik jeg tid til at teste det alligvel. schaefner dit første forslag virker fint.

En ting der undre mig er, at ved:
http://127.0.0.1/foo/
http://127.0.0.1/foo/bar
http://127.0.0.1/foo/bar/

virker mit stylesheet ikke, når jeg linker til det sådan her:
@import url(css/screen.css);
istedet bliver jeg nødt til at skrive:
@import url(/css/screen.css);

Hvordan kan det være? Burde man ikke befinde sig i roden (http://127.0.0.1) selv om der står http://127.0.0.1/foo/bar/ i adressebaren?
Avatar billede rthuls Nybegynder
02. november 2004 - 11:04 #8
Det ser ud til at mit css problem har løst sig selv. Måske det bare var cachen der drillede.

schaefner du må i hvert fald godt lægge et svar.
Avatar billede schaefner Juniormester
02. november 2004 - 11:41 #9
Ok
Avatar billede Slettet bruger
02. november 2004 - 11:44 #10
Nej, man befinder sig ikke i roden. Det er nemlig browserens opfattelse, der er gældende.

Hvis du prøver at hente css/screen.css fra

http://127.0.0.1/foo/bar  vil den se efter http://127.0.0.1/foo/css/screen.css
http://127.0.0.1/foo/bar/ vil den se efter http://127.0.0.1/foo/bar/css/screen.css
Avatar billede schaefner Juniormester
02. november 2004 - 11:53 #11
Men når du skriver / foran stien vil den gå fra roden og ud. Så ved /css/screen.css vil den se efter http://127.0.0.1/css/screen.css
Avatar billede rthuls Nybegynder
02. november 2004 - 12:51 #12
Ok, det var også cirka det jeg kom frem til :o)

Tak for hjælpen!
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