Avatar billede andreas13_fam Nybegynder
23. maj 2010 - 00:10 Der er 8 kommentarer og
1 løsning

hjælp til htaccess RewriteRule

Jeg ar forsøgt at lave en RewriteRule men det er ikke rigtigt lykkedes mig.

Det jeg ønsker er at have en .htaccess der gør følende:

Hvis den fil der spørgs efter ligger i /public/ mappen så brug den.
Fx: http://site.web/robots.txt skal pege mod root/site.web/public/robots.txt

Hvis filen ikke kunne findes skal index.php bruges og den fil eller mappe der blev forsøgt at åbne skal ligge i et GET parameter.
Fx: http://site.web/foo/bar/ skal pege mod root/site.web/index.php?system=/foo/bar/

Dettte skulle også gerne forhindrer adgang til mapper eller filer, sådan at http://site.web/models/mysql.php ikke peger mod root/site.web/models/mysql.php men root/site.web/public/models/mysql.php
Avatar billede RexReptiles Nybegynder
23. maj 2010 - 00:42 #1
ganske nydelig guide her:
http://corz.org/serv/tricks/htaccess2.php

den viser lidt af det hele
Avatar billede andreas13_fam Nybegynder
23. maj 2010 - 11:06 #2
Jeg har faktisk læst den og har forsøgt mig med dettte:

RewriteEngine on

RewriteCond public/%{REQUEST_FILENAME} !-d
RewriteCond public/%{REQUEST_FILENAME} !-f

RewriteRule ^(.*)$ /index.php?SYSTEM=$1 [QSA,L]


Men så for jeg en Internal Server Error. I apache logen står der


[Sun May 23 11:01:43 2010] [error] [client 127.0.0.1] mod_rewrite: maximum number of internal redirects reached. Assuming configuration error. Use 'RewriteOptions MaxRedirects' to increase the limit if neccessary.
Avatar billede RexReptiles Nybegynder
23. maj 2010 - 11:32 #3
løsning:
Use 'RewriteOptions MaxRedirects' to increase the limit if neccessary.

ikke din server?

løsning, ring dem op.
Avatar billede andreas13_fam Nybegynder
23. maj 2010 - 12:05 #4
Serøst din hjælp er ikke 60 point værd. Det er på min localhost så jeg kan ikke se hvem det er jeg skal ringe op.

Desuden har jeg et andet domine på min localhost som bruge følende:

RewriteEngine on

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

RewriteRule ^(.*)$ index.php?system=$1 [L,QSA]

og det virker fint.
Avatar billede RexReptiles Nybegynder
23. maj 2010 - 12:13 #5
mod_rewrite: maximum number of internal redirects reached. Assuming configuration error. Use 'RewriteOptions MaxRedirects' to increase the limit if neccessary

- den fortæller dig lige her at dit setup har fejlen.

prøv at gør det den siger til dig.
Avatar billede RexReptiles Nybegynder
23. maj 2010 - 12:15 #6
også læs lige indlægget igen, jeg startede jo med at gå ud fra det var din server.

og din tålmodighed er heller ikke 60 point værd. det er ikke mig der har problemer, men jeg kan da godt bare fordufte og lade dig selv om hvis du skal være en smartass
Avatar billede andreas13_fam Nybegynder
23. maj 2010 - 13:29 #7
"også læs lige indlægget igen, jeg startede jo med at gå ud fra det var din server."
Jammen så vil jeg bede dig om at formulerer dig i lidt længere sætninger, efter som det ikke var sådan jeg forstod det."
Du må enlig ikke opfatte det jeg siger som negativt eller stødende, det har aldrig været min mening. Og desuden tror jeg ikke at der er nogen i dette forum det kunne finde på det.

Når men det handlede ikke om at der skulle sættes ekstra linjer ind. Efter jeg fjerene / ved index.php forsvandt fejlen. Dog virker det stadig ikke da jeg med fx /robots.txt bliver sendt vider til index.php.

Desuden: efter at have fundet ud af hvordan man udskriver de forskelle variabler som %{REQUEST_FILENAME} kan jeg se at:
%{REQUEST_FILENAME} peger mod /Users/Andreas/Sites/beta/site.web/robots.txt

og så giver et selvfølgelig ingen mening at sætte public/ på sådan at det bliver:
/public/Users/Andreas/Sites/beta/site.web/robots.txt

ved du hvordan jeg for /public indsat sådan at det bliver:
/Users/Andreas/Sites/beta/site.web/public/robots.txt
Avatar billede andreas13_fam Nybegynder
23. maj 2010 - 14:24 #8
Jeg tror jeg fandt ud af det:

RewriteEngine on

RewriteCond %{DOCUMENT_ROOT}/public%{REQUEST_URI} -f
RewriteRule ^(.*)$ %{DOCUMENT_ROOT}/public%{REQUEST_URI} [QSA]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?SYSTEM=$1 [QSA,L]

Kan du se om der skulle være nogen problemer i den kode?
Avatar billede RexReptiles Nybegynder
24. maj 2010 - 13:02 #9
umiddelbart syntes jeg det ser ganske fint ud, den gør hvad den blir bedt om.
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