Avatar billede plazm Nybegynder
17. august 2005 - 15:09 Der er 12 kommentarer og
1 løsning

.htaccess skal åbne mappe i stedet for at rewrite

Hejsa.
Jeg har et problem med min .htaccess fil.
Den virker fint nok med mit normale script at den skal rewrite.
Men når jeg beder den om at åbne en mappe eksempelvis /v1/ så laver den et rewrite, men det gør den ikke hvis jeg skriver /v1/index.php

hvordan får jeg den til at åbne index.php uden at skulle til at skrive /index.php ?

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/([^/]+)/([^/]+)/([^/]+)/$ /index.php?page=$1&id=$2&$3&$4
RewriteRule ^([^/]+)/([^/]+)/([^/]+)/$ /index.php?page=$1&id=$2&$3
RewriteRule ^([^/]+)/([^/]+)/$ /index.php?page=$1&id=$2
RewriteRule ^([^/]+)/$ /index.php?page=$1
Avatar billede webt Nybegynder
18. august 2005 - 00:16 #1
Hejsa, jeg er vist ikke helt med, det er jo sent,

men hvis /v1/index.php findes vil den ikke lave et rewrite pga
RewriteCond %{REQUEST_FILENAME} !-f

Hvis det ikke er derfor skal den sidste rewrite nok laves om til noget ala

RewriteRule ^([^/]+)/([^/]+)?/?$ /index.php?page=$1

da den så vil matche på /etEllerAndet/muligvisEtEllerAndet/

Er træt så hvis det ikke lige er det eller ikke lige virker er jeg tilbage i morgen frisk og veludvilet :D

Men godnat herfra
Martin
Avatar billede plazm Nybegynder
18. august 2005 - 06:21 #2
Det den gør er at hvis jeg indtaster
/v1/
så går htaccess ind og siger at den skal falde ind som index.php?page=v1 i stedet for at åbne /v1/index.php som jeg kan åbne ved at indtaste den i addreselinien.
Avatar billede leif Seniormester
18. august 2005 - 07:06 #3
Du har smidt din htacess i roden af dit web ?
Avatar billede leif Seniormester
18. august 2005 - 07:07 #4
Skal rewrite kun bruges i v1 ? Så kan du bare smide den i v1 biblioteket i stedet for !
Avatar billede plazm Nybegynder
18. august 2005 - 07:50 #5
htaccess ligger i roden af root, men jeg kunne godt tænke mig at jeg bare skulle kunne oprette en ny mappe uden at skulle til at rette i htaccess..
problemet ligger jo i at /v1/ mappen faktisk eksiterer på mit domæne og det gør /arkiv/ for eksempel.
Avatar billede plazm Nybegynder
18. august 2005 - 07:50 #6
"ikke" manglede så til slut i den sætning
Avatar billede webt Nybegynder
19. august 2005 - 08:17 #7
Hmm jeg er stadig ikke helt med på hvad den gør/ikke gør som den burde gøre/eller ikke gøre, sikkert bare mig der er langsom :D, men mon ik vi nok skal finde ud af det før eller siden :)

Mvh
Martin
Avatar billede plazm Nybegynder
21. august 2005 - 14:37 #8
Hehe jo.
Altså min .htaccess ligger i mappen / hvor min index.php også ligger.
Den skal så skrive rewrite alle de stier jeg laver som ikke i forvejen er en eksisterende mappe om til index.php?page=blabla&id=blabla
men hvis mappen eksiterer skal den ikke skrive dir om men derimod åbne index.php som ligger i den mappe.
Avatar billede showsource Seniormester
22. august 2005 - 07:53 #9
Problemet er noget med at du også bruger / i RewriteRule som afslutning

Den her virker fint for mig, omend det ikke er helt du skal bruge?

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

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

Tilføjer jeg
RewriteRule ^([a-zA-Z0-9/_]+)/$ index.php?id=$1
virker det ikke, altså den går ikke ind i dir'et
Avatar billede webt Nybegynder
22. august 2005 - 08:37 #10
Nu er jeg endelig med på hvad det er du vil heh, her er en simpelt udgave så kan du arbejde videre:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.* - [L]
RewriteRule ^([^/]+)/?$ /index.php?page=$1 [l]

Det skulle ikke være noget problem at smide de andre ind her

Bare bemærk /? betyder at den sidste / ikke er nødvendig så både /lala og /lala/ virker
og husk [OR] tagget ellers virker det kun på den sidste condition
http://httpd.apache.org/docs/1.3/mod/mod_rewrite.html#RewriteCond

Mvh
Martin
Avatar billede webt Nybegynder
22. august 2005 - 08:45 #11
altså [or] på RewriteCond
Avatar billede plazm Nybegynder
22. august 2005 - 15:12 #12
webt smid et svar, du hjalp mig igennem ;) dog skulle jeg også lige have
RewriteRule ^.* - [L]
linien med før at det virkede.. Takker
Avatar billede webt Nybegynder
22. august 2005 - 15:27 #13
Ja men jeg er da glad for at kunne hjælpe, her kommer et svar fra mig

Fortsat god dag fra mig

Mvh
Martin
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