login  Naam:   Wachtwoord: 
Registreer je!
 Forum

.htaccess mod_rewrite laat niet

Offline rory - 08/11/2013 11:49 (laatste wijziging 08/11/2013 11:50)
Avatar van roryLid Beste,

Ik heb een uitdaging... Ik weet dat dit het HTML&CSS forum is maar ik kon geen andere betere locatie vinden.

Ik ben bezig met een site waarvoor ik subdomainen wil rewriten & daarnaast nog de url wil rewriten

Ik heb nu in mijn .htaccess het volgende:
Dit rewrite de subdomein naar de juiste stad
http://www.plaatscode.be/142289/
Maar nu wil ik:

http://almere.adres.eu/filter/cafe laten uitkomen op: http://www.adres.eu/?city=almere&filter=cafe

Nu had ik daarvoor het volgende gemaakt:
http://www.plaatscode.be/142290/

Maar dat werkt helaas niet 

Heeft iemand een tip om me op weg te helpen.

Groeten,

Rory M.

1 antwoord

Gesponsorde links
Offline Thomas - 08/11/2013 15:35 (laatste wijziging 09/11/2013 13:07)
Avatar van Thomas Moderator Hmm, wellicht als je de RewriteRules eens omdraait? Dus eerst de meeste specifieke (city+filter) en dan pas de andere (city). De eerste RewriteRule wordt namelijk altijd uitgevoerd in jouw huidige volgorde denk ik, de tweede komt dan nooit aan bod.

EDIT: Heb nog even het e.e.a. nagelezen over RewriteRules: de eerste RewriteRule (waarvan het patroon voldoet) voert de patroon-match uit op het URL-pad. Alle daaropvolgende RewriteRules matchen hun patroon op de uitvoer van de laatste voorgaande RewriteRule - die wordt dan weer als invoer gebruikt.

Het voorstel wat ik hierboven gaf was dus niet helemaal volledig, je moet de volgende twee dingen doen:
- zet de RewriteRules in de volgorde meest-specifiek naar minst-specifiek
- zorg ervoor dat er maar maximaal één RewriteRule wordt uitgevoerd, dit doe je met de [L] (Last) flag. Zodra een RewriteRule matcht, moet er gestopt worden met het rewrite-proces

het volgende zou dus moeten werken (er vanuit gaande dat de voorheen geschreven code werkte):

  1. RewriteCond %{HTTP_HOST} !www.adres.eu$ [NC] # Presuming you don't want to do www
  2. RewriteCond %{HTTP_HOST} ^(.*)\.adres\.eu [NC] # Catch subdomain
  3. RewriteCond %{REQUEST_URI} !index\.php [NC] # Don't rewrite if we already have
  4. # Rewrite from most-specific to least specific, immediately stop upon first match
  5. RewriteRule ^filter/?([a-z/]+)$ index.php?city=%1&filter=$1 [L]
  6. RewriteRule ^(.*)$ index.php?city=%1 [L]
Bedankt door: Koen
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.176s