[Apache] werking mod_rewrite tussen servers *

Pagina: 1
Acties:

  • zneek
  • Registratie: Augustus 2001
  • Laatst online: 08-02-2025
Een klant vraagt me 2 servers aan elkaar te koppelen. Op server 1 draait een site, op server draaien een aantal mini-sub-sites. www.domein.nl komt uit op server 1, www.domein.nl/subsite moet uitkomen op server 2. Server 1 is een Debian machine met Apache 2+, server 2 een Win2K3 machine.

In de mod_rewrite documentatie (http://httpd.apache.org/docs/2.0/misc/rewriteguide.html) kwam ik het volgende tegen:
code:
1
2
3
4
5
6
7
8
9
Move Homedirs to Different Webserver
Description: 
Many webmasters have asked for a solution to the following situation: They wanted to redirect just all homedirs on a webserver to another webserver. They usually need such things when establishing a newer webserver which will replace the old one over time.

Solution: 
The solution is trivial with mod_rewrite. On the old webserver we just redirect all /~user/anypath URLs to http://newserver/~user/anypath.

RewriteEngine on
RewriteRule   ^/~(.+)  http://newserver/~$1  [R,L]


Dat lijkt precies te doen wat ik nodig heb. Ik vraag me alleen af hoe dit werkt? Wordt de rewrite tussen de 2 servers opgelost? server 1 vertaalt een request van een bezoeker volgens de rewrite rule, ontvangt de response en zet die door naar de bezoeker? Of krijgt de bezoeker een soort van redirect naar server 2?

[edit] Mag ik een modje vragen om de titel aan te passen in "werking mod_rewrite tussen servers"? Bij voorbaat dank.

[ Voor 5% gewijzigd door zneek op 29-03-2006 11:39 ]


  • zneek
  • Registratie: Augustus 2001
  • Laatst online: 08-02-2025
Aangezien ik het antwoord inmiddels heb post ik dat maar even, wel zo netjes ;)

Bij een interne mod_rewrite (/nieuws/3 naar niews.php?id=3) blijft de rewrite in zijn geheel verborgen voor de bezoeker. Bij een rewrite naar een andere server krijg je een redirect voor je kiezen als bezoeker. De request wordt dus niet tussen servers afgehandeld, maar de bezoeker wordt echt fysiek doorverwezen naar het andere adres.

Aangezien ik voor de klant in kwestie nu een leuk subdomein opgezet heb, en de mod_rewrite onder de huidige domeinnaam actief is zal na verloop van tijd iedereen rechtstreeks naar de nieuwe locatie gaan. Perfecto dus.

Het schijnt trouwens wel te kunnen zoals ik me het voorstelde, dat de 2 servers onderling met elkaar kletsen, maar daarvoor kom je in veel omslachtigere oplossingen als mod_proxy (heb ik me laten vertellen)