Avatar billede qualon1 Nybegynder
23. august 2006 - 16:28 Der er 3 kommentarer og
1 løsning

mod_rewrite af flere end et dir

hej Eksperter

Jeg ville gerne have et system på min hjemmeside sådan at hvis jeg skriver:
www.domæne.dk/products/cars/citroen
så oversætter den dette til:
www.domæne.dk/?pagename=products&subname=cars&childname=citroen
Jeg har følgende:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-F
RewriteRule ^([0-9]+)/$ /?pagename=$1

Denne virker godt nok til den første, men hvordan får jeg den til at registrer de 2 andre variabler? desuden må query_string også gerne sendes med hvis det er muligt
Avatar billede webt Nybegynder
23. august 2006 - 17:46 #1
Hej,

Følgende rewrite rule burde kunne klare det:


RewriteRule ^([^/]+)/([^/]+)/([^/]+)?/?$ /index.php?pagename=$1&subname=$2&childname=$3 [QSA]

den matcher på 3 sets af alting og valgfri / til slut, idet den har fået [QSA] query string append vil den automatisk sende en evt querystring med

Mvh
Martin
Avatar billede qualon1 Nybegynder
23. august 2006 - 22:43 #2
det virker udemærket, men den fucker alt andet op. Fx billeder som der hentes fra Html koden bliver også kørt under det script og derved virker de ikke... er det muligt at sige at hvis filen eksisterer så skal den ikke lave en rewrite.
Fx skal denne omskrives:
www.domæne.dk/products/cars/volve/
men denne skal ikke:
www.domæne.dk/images/template/message.gif
Avatar billede webt Nybegynder
23. august 2006 - 23:06 #3
Så længe du stadig har din: RewriteCond %{REQUEST_FILENAME} !-F burde det ikke ske

Ligeledes er det nødvendigt at ændre dine stier til billeder i html til absolutte altså med / foran da hvis de er relative vil html siden tro den skal kigge inde i products/cars/volvo hvis det er der der er rewritet fra

håber det giver mening er lidt småtræt lige pt :D

Mvh
Martin
Avatar billede qualon1 Nybegynder
29. august 2006 - 17:55 #4
Tak for hjælpen webt, men jeg fandt et script som var mere fleksibel
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
RewriteRule ^[^/]*\.html$ /index.php
</IfModule>
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