Avatar billede 7th Praktikant
17. december 2003 - 18:51 Der er 9 kommentarer og
1 løsning

Hjælp til mod_rewrite

Jeg har Apache kørende lokalt på Windows XP, og jeg kan ikke få mod_rewrite til at virke. Jeg tror måske det har noget at gøre med min mappestruktur.

Mappen server fungerer som rodbibliotek. I denne mappe har jeg alle mine projektmapper. Jeg prøver så på at lave en mod_rewrite i projektmappe_a.

.htaccess i projektmappe_a:

ReWriteEngine on
ReWriteBase /
ReWriteCond %{REQUEST_FILENAME} !-F
ReWriteRule ^([0-9]+)$ /index.php?id=$1

index.php i projektmappe_a:

<?= $_GET['id']; ?>

Indtaster jeg http://localhost/projektmappe_a/123/ får jeg en HTTP 404 fejl, mens http://localhost/projektmappe_a/index.php?id=123 virker fint nok.

Hvad mangler jeg min .htaccess?

Et lille tillægsspørgsmål. Ovenstående virker fint på mit webhotel. Hvis man for eksempel indtaster http://domæne.dk/123, hvordan får jeg det så lavet således, at der viderestilles til http://domæne.dk/123/?
Avatar billede htm Nybegynder
17. december 2003 - 19:46 #1
Hvis det ligger i mappen projektmappe_a skal der stå
/projektmappe_a/ i rewritebase.

Du skal jo desuden også have givet lov til at afvikle .htaccess og mod_rewrite.

for at takle den med / til sidst, laver du bare en ny rewriterule.

ReWriteEngine on
ReWriteBase /projektmappe_a/
ReWriteCond %{REQUEST_FILENAME} !-F
ReWriteRule ^([0-9]+)$ /index.php?id=$1
ReWriteRule ^([0-9]+)/$ /index.php?id=$1
Avatar billede 7th Praktikant
17. december 2003 - 20:10 #2
Jeg har prøvet at rette ReWriteBase til /projektmappe_a/, men det hjælper ikke. Jeg kiggede lidt i spørgsmål http://www.eksperten.dk/spm/378111, og min phpinfo() viser heller ikke noget om Loaded Modules, så måske er det der problemet ligger.

Jeg har fjernet # fra LoadModule rewrite_module modules/mod_rewrite.so og AddModule mod_rewrite.c, og og jeg har sat .htaccess options til AllowOverride All.
Avatar billede htm Nybegynder
17. december 2003 - 20:50 #3
Og du har genstartet apache efterfølgende?

Hvad står der i din error.log den forsøger at få fat i?

Prøv evt. og smid rewritelog på med loglevel 9.
Avatar billede 7th Praktikant
17. december 2003 - 21:01 #4
Jep, genstartet mange gange.

[error] [client 127.0.0.1] File does not exist: c:/server/projektmappe_a/123/

Hvad menes med rewritelog på med loglevel 9?
Avatar billede 7th Praktikant
17. december 2003 - 21:13 #5
Jeg prøvede jeg lige at smide .htaccess og index.php ud i rodbiblioteket, og der virkede det :o) Nu er spørgsmålet bare hvordan jeg får det til at virke i projektmappe_a.
Avatar billede 7th Praktikant
17. december 2003 - 21:17 #6
Ahh ReWriteRule ^([0-9]+)/?$ /projektmappe_a/index.php?id=$1 - nu virker det :o)

Kan du klare det med viderestilling? Dit første forslag virker nemlig ikke. Som det er nu forstår den både http://domæne.dk/123 og http://domæne.dk/123/, men det ville være fint, hvis den automatisk tilføjede et /, hvis man skrev http://domæne.dk/123
Avatar billede htm Nybegynder
17. december 2003 - 21:38 #7
ja selvfølgelig når du har / med foran skal du også lave det med hele stien, selvom du har rewritebase med.

Prøv og kig på "Trailing Slash Problem" her: http://httpd.apache.org/docs/misc/rewriteguide.html
Avatar billede 7th Praktikant
17. december 2003 - 21:49 #8
OK tak, lidt for avanceret for mig, men hvis du vil have points, så smid et svar.
Avatar billede htm Nybegynder
17. december 2003 - 21:51 #9
Men ellers burde den anden løsning virke fint, altså bare smid en / lige inden $i nummer 2 rewrite, ellers helt ens.
Avatar billede 7th Praktikant
17. december 2003 - 22:59 #10
Tak
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