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?
Annonceindlæg fra Deloitte
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.
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
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
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/
04. april 2006 - 14:52
#5
Det skal den jo også - uk/forside findes jo ikke!
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]
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]
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.
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..
04. april 2006 - 15:34
#10
Kan jeg knække den ved at lave 3 filer? F.eks.: index.php uk.php de.php ?
04. april 2006 - 15:34
#11
(i stedet for mapper)
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]
04. april 2006 - 15:46
#13
Uhhh, det ser rent faktisk ud til at virke - coder ;)
04. april 2006 - 15:47
#14
5 min., leger lige videre med det...
04. april 2006 - 15:48
#15
Ser umiddelbart ud til kun at virke på: uk/forside/ og ikke: uk/forside
04. april 2006 - 15:53
#16
Glem det.. Du er dagens helt!! Ser ud til at virke helt perfekt!
04. april 2006 - 16:45
#17
Coderdk, laver du ikke et svar?
04. april 2006 - 16:51
#18
Yes ok :)
Vi tilbyder markedets bedste kurser inden for webudvikling