URL rewrite

Status
Niet open voor verdere reacties.

Jeroen92

Gebruiker
Lid geworden
30 jan 2012
Berichten
6
Hallo,

Ik wil graag d.m.v. URL rewrite bepaalde mappen op de server voor laten doen als subdomeinen.
Dus bijvoorbeeld www.domein.nl/map/plaatsnamen/utrecht/ zou zich voor moeten doen als utrecht.domein.nl, en alle submappen in www.domein.nl/map/plaatsnamen/utrecht/submap moeten ook in dat fake subdomein komen: utrecht.domein.nl/submap.

Ik weet dat dit mogelijk is met URL rewrite alleen in tegenstelling tot php begrijp ik nog he-le-maal niets van de manier van coden in htaccess. Wie kan me op weg helpen?
 
mod-rewrite maakt gebruik van regular expressions, iets wat ook redelijk vaak gebruikt wordt in PHP.

Bedenk alleen wel dat je het omgekeerde wil: mensen vullen in utrecht.domein.nl en op de achtergrond moet wat anders opgevraagd worden.

Je moet voor jezelf dan even de stappen uitzetten:

-je wil subdomein (behalve waarschijnlijk "WWW") pakken
-subdomein wil je vervolgens achter je domein/map plakken
-je uri plak je achter je nieuwe URL.
 
De basis wordt ongeveer:

RewriteCond %{HTTP_HOST} ^(?!www)(.+).(domein.nl)
RewriteRule (.*) map/plaatsnamen/%1/$1
 
Ik ben erachter gekomen dat ik wél de DNS instellingen kan aanpassen.
Nu heb ik dus in de DNS een * wildcard toegevoegd als A record zodat hij alles kan accepteren zonder dat er handmatig subdomeinen aangemaakt moeten worden.

Welke precieze code moet ik nu gebruiken om /map/plaatsnaam/utrecht weer te geven als utrecht.domein.nl?
 
Heb je mijn bovenstaande code al geprobeerd? Het is moeilijk dat soort dingen precies te schrijven zonder feedback
 
Ik heb het inmiddels bijna werkend, met de volgende code en de wildcard;

RewriteEngine on

RewriteCond %{HTTP_HOST} ^([^\.]+)\.domein\.nl$ [NC]
RewriteCond %1 !^(www|ftp|mail|webmail)$ [NC]
RewriteRule ^.*$ http://www.domein.nl/map/woonplaats/%1 [NC,L]

Alleen als ik nu utrecht.domein.nl opvraag, dan "forward" hij me naar domein.nl/map/woonplaats/utrecht.
Goed begin dus, alleen moet de url in de adresbalk utrecht.domein.nl blijven en niet veranderen in domein.nl/map/woonplaats/utrecht.

Hoe krijg ik dat voor elkaar?
 
door niet een fully qualified link te nemen, maar zoiets als ik in mijn voorbeeld had:

RewriteRule (.*) map/plaatsnamen/%1/$1
 
Ook wanneer ik het zo doe, blijft hij forwarden i.p.v. de neppe url te tonen:

RewriteEngine on

RewriteCond %{HTTP_HOST} ^([^\.]+)\.domein\.nl$ [NC]
RewriteCond %1 !^(www|ftp|mail|webmail)$ [NC]
RewriteRule (.*) map/woonplaats/%1 [NC,L]
 
Hoe bedoel je dat precies? Let wel op je laat $1 weg, maar dat kan betekenen dat alles na de originele URL weg is,

utrecht.domein.nl/submap werkt dan mogelijk niet.
 
Bedankt voor je snelle reacties overigens!

Wat ik bedoel: ik typ in de browser utrecht.domein.nl, maar vervolgens wordt ik heel snel "doorgestuurd" naar www.domein.nl/map/woonplaats/utrecht. Maar wat er zou moeten gebeuren is dat utrecht.domein.nl ook daadwerkelijk in de browser blijft staan en ook echt de URL blijft.

Ik heb $1 overigens weer toegevoegd.
 
Zie bijgevoegd plaatje. Als ik mijn ruleset zoals in mijn post toevoeg, blijft de url "map..." ipv "www..." je kunt aan de error zien dat de urlrewrite wel uitgevoerd word.

Heb je in je virtual hosts file in apache ook *.domein.nl toegevoegd?
 

Bijlagen

  • ruletest.jpg
    ruletest.jpg
    17,5 KB · Weergaven: 20
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan