Avatar billede blach Nybegynder
03. april 2006 - 22:35 Der er 17 kommentarer og
1 løsning

RewriteEngine ikke alle mapper

Håber I kan hjælpe mig med denne her !!

Jeg har lavet en .htAccess fil således:
------------------------------------------
RewriteEngine On
RewriteCond  %{REQUEST_FILENAME} !-f
RewriteCond  %{REQUEST_FILENAME} !-d
RewriteRule  ^(.+) /index.php?page=$1 [L]
------------------------------------------


Og det virker fint, jeg linker rundt vha. eks.:
<a href="http:www.domæne.dk/forside/">Forside</a>
og kan derved tjekke med $_GET[page]

Nu er mit problem, at jeg fra gammel tid har lavet mapper for sprog, dvs.:
www.domæne.dk
www.domæne.dk/uk/
www.domæne.dk/de/

Når jeg er på disse undermapper, f.eks. www.domæne.dk/uk/index.php, og linker rundt så springer den tilbage til www.domæne.dk/index.php

Det er vel en ændring i .htaccess der skal til?
Avatar billede coderdk Praktikant
04. april 2006 - 10:56 #1
Det lyder underligt. Det burde virke da både !-f og !-d checker for eksisterende filer og biblioteker... Prøv evt. at sætte en

RewriteCond %{REQUEST_FILENAME} !-F

Ind, selvom det ikke burde være nødvendigt - Det kan også skade performance.
Avatar billede blach Nybegynder
04. april 2006 - 11:41 #2
Okay prøver jeg lige... Men er det OK at linke rundt vha:
<a href="http:www.domæne.dk/forside/">Forside</a>

Og på undermappen:
<a href="http:www.domæne.dk/uk/forside/">Forside</a>

(For så kan den selv ikke se forskel, om jeg linker over til en mappe som eksiterer, eller en "virtuel" mappe?)


Sad og rodede med noget, hvor den selv lavede mine links om, hvis jeg skrev index.php&page=forside
Avatar billede blach Nybegynder
04. april 2006 - 14:35 #3
coderdk --> Kan ikke lige se at indsættelse af RewriteCond %{REQUEST_FILENAME} !-F gør en forskel.


Problemet er, at det virker fint ved at skrive f.eks.: www.domæne.dk/forside/
og: www.domæne.dk/uk/index.php

Men hvis jeg skriver www.domæne.dk/uk/forside/ så hopper den en dir tilbage til index filen i roden: www.domæne.dk/index.php
Avatar billede blach Nybegynder
04. april 2006 - 14:43 #4
Hvis jeg sætter til R i stedet for L i:
RewriteRule  ^(.+) /index.php?page=$1 [L]


Får jeg denne URL: www.domæne.dk/index.php?page=de/forside/
-når jeg indskriver: www.domæne.dk/de/forside/
Avatar billede coderdk Praktikant
04. april 2006 - 14:52 #5
Det skal den jo også - uk/forside findes jo ikke!
Avatar billede coderdk Praktikant
04. april 2006 - 14:54 #6
Prøv

RewriteEngine On
RewriteCond  %{REQUEST_FILENAME} !-f
RewriteCond  %{REQUEST_FILENAME} !-d
RewriteRule  ^uk/(.+) /uk/index.php?page=$1 [L]
RewriteRule  ^de/(.+) /de/index.php?page=$1 [L]
RewriteRule  ^(.+) /index.php?page=$1 [L]
Avatar billede coderdk Praktikant
04. april 2006 - 14:55 #7
Eller:

RewriteEngine On
RewriteCond  %{REQUEST_FILENAME} !-f
RewriteCond  %{REQUEST_FILENAME} !-d
RewriteRule  ^(uk|de)/(.+) /$1/index.php?page=$2 [L]
RewriteRule  ^(.+) /index.php?page=$1 [L]
Avatar billede blach Nybegynder
04. april 2006 - 15:01 #8
Det er den slet ikke tilfreds med!

Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Avatar billede blach Nybegynder
04. april 2006 - 15:12 #9
Den vil kun f.eks. sådan:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule  ^(.+) /index.php?page=$1 [L]
RewriteRule  ^en/(.+) en/index.php?page=$2 [L]

-hvilket ingen forskel giver..
Avatar billede blach Nybegynder
04. april 2006 - 15:34 #10
Kan jeg knække den ved at lave 3 filer?

F.eks.:

index.php
uk.php
de.php

?
Avatar billede blach Nybegynder
04. april 2006 - 15:34 #11
(i stedet for mapper)
Avatar billede coderdk Praktikant
04. april 2006 - 15:35 #12
Prøv lige:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule  ^(de|uk)/(.+)$ /$1/index.php?page=$2 [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule  ^(.+)$ /index.php?page=$1 [L]
Avatar billede blach Nybegynder
04. april 2006 - 15:46 #13
Uhhh, det ser rent faktisk ud til at virke - coder ;)
Avatar billede blach Nybegynder
04. april 2006 - 15:47 #14
5 min., leger lige videre med det...
Avatar billede blach Nybegynder
04. april 2006 - 15:48 #15
Ser umiddelbart ud til kun at virke på: uk/forside/
og ikke: uk/forside
Avatar billede blach Nybegynder
04. april 2006 - 15:53 #16
Glem det.. Du er dagens helt!! Ser ud til at virke helt perfekt!
Avatar billede blach Nybegynder
04. april 2006 - 16:45 #17
Coderdk, laver du ikke et svar?
Avatar billede coderdk Praktikant
04. april 2006 - 16:51 #18
Yes ok :)
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