Avatar billede saucer Nybegynder
01. maj 2006 - 13:44 Der er 8 kommentarer og
1 løsning

Hjælp til skjulte mapper med RewriteRule mod_rewrite

Hej

Jeg har kigget lidt på denne artikel : http://php.coder.dk/fakedir.php og har prøvet at bruge Løsning 4.

Min .htaccess fil ser sådan ud :

RewriteEngine On
RewriteBase /
RewriteRule ^side/[0-9] /index.php?pageID=$1

Det vil sige at jeg nu kan bruge www.sidensnavn/side/1 til at vise sidens indhold med.

Men hvordan laver jeg så ^side blive dynamisk så jeg måde kan skrive www.sidensnavn/forside/2 eller www.sidensnavn/kontakt/3 eller noget helt 3 alt efter hvad menupunktet heder.

I kan alle se løsningen her som jeg arbejder med.
http://www.hks-aps.dk/

Der er også kommet en fejl på siden efter at jeg har lavet dette nummer med min .htaccess fil. Hvis man klikke på et menupunk nu så vil undersiden midste css og designet og komme ud i rå tekst. Har I en idé hvorfor det sker ??


Med venlig hilsen
Srdjan
Avatar billede webt Nybegynder
01. maj 2006 - 18:22 #1
Hejsa,
Tjae et par løsninger, har du ikke noget imod at sende pageId med som du gør kan du jo bare lave en
RewriteEngine On
RewriteBase /
RewriteRule ^([a-z]+)/([0-9]+)/? /index.php?pageID=$2 [nc,l]


så kan du lave dine links som forside/1 nogetandet/2 osv
men forside/2 vil også pege på nogetandet/2 i denne løsning

Alternativt kan du jo evt. nøjes med at sende side navnet med - dette kræver jo så at alle dine sider har et unikt navn som på en eller andet måde kan hentes ud på php siden.

Mht hvorfor din CSS ikke længere vises er at browseren tror at mapperne er ægte og så passer stien jo ikke længere. SÅ hvis CSS'en ligger i rod mappen så sæt en / foran hvor du kalder den ellers hvis den fx ligger i en mappe kaldet css i roden så /css/css.css

Mvh
Martin
Avatar billede saucer Nybegynder
02. maj 2006 - 08:35 #2
webt ->> Hej. Det virker 99% :)

Der er lige 2 ting som ikke spiller helt optimalt.

Hvis man klikker på et link som peger på : www.side.dk/forside/1  og der efter klikker på et link igen så laver den dette nummer . www.side.dk/forside/1/kontakt/2

url til siden :http://hks-aps.dk/

+ at den ikke kan finde sider hvor navnet er delt i flere or. Jeg har selv lavet er str_replace på menuen der erstatter mellemrum med _ så det giver Om_os men detter virker ikke helt.

Tak :)
Avatar billede webt Nybegynder
02. maj 2006 - 09:44 #3
Hej igen,
Glad for det næsten virker :D
Mht til det første problem er det releteret til det samme som CSS'en du smider bare en / foran dine links så de bliver /forside/1 i stedet for forside/1 - det gør simpelthen bare at den gå tilbage til "roden" dvs dit domæne og så ind i forside/1

Det andet problem med at den ikke virker når der kommer  _ i linket skyldes simpelthen reglen:
RewriteRule ^([a-z]+)/([0-9]+)/? /index.php?pageID=$2 [nc,l]

([a-z]+) vil matche en eller flere bogstaver (pga +) af typen a-z her tilføjer du bare de ekstra ting fx _ så det bliver ([a-z_]+)
([0-9]+) det samme med det næste match bare tal 0-9 her gør + igen at der kan være flere forekomster af tal'ne ellers ville tal over 9 ikke være gyldigt

/? betyder bare at linket kan ha en / i slutningen eller ej

[nc,l] betyder henholdsvis no case (ingen forskel på store og små bogstaver, og l=last rule.

Håber det afklare det lidt - ellers skriver du bare igen vi skulle jo gerne op på 100% virkning (hvis virkning da ellers er et ord :D)

Mvh
Martin
Avatar billede saucer Nybegynder
02. maj 2006 - 10:34 #4
webt ->  Sweet. jeg har ikke afprøvet det men kunne læse mig frem til at det vil virke.

Jeg vil her med sige 10000 tak for hjælpen.

Har du et link hvor jeg kan læse mere om disse regler så jeg ikke skal spørge igen næste gang jeg kommer til stykket.
Avatar billede saucer Nybegynder
02. maj 2006 - 10:55 #5
Ps. Har lige afprøvet det og det spiller 100%
Avatar billede webt Nybegynder
02. maj 2006 - 10:57 #6
Så lidt :) glad for at kunne hjælpe

Du kan læse mere om mod_rewrite på apaches side:
http://httpd.apache.org/docs/1.3/mod/mod_rewrite.html

Hvis der er nogen problemer med det kan du bare skrive her i spørgsmålet

Mvh
Martin
Avatar billede webt Nybegynder
02. maj 2006 - 10:57 #7
Cool :) siger da også tak for points

Fortsat god dag
Avatar billede webt Nybegynder
02. maj 2006 - 11:01 #8
Hov det var vist lige et lidt gammelt link, her er det nyeste:
http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html
Avatar billede saucer Nybegynder
02. maj 2006 - 11:18 #9
Jeg takkkkker
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

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