Bekijk Volledige Versie : subdomein maken met mod_rewrite
Erik Hensema
02/02/04, 22:25
Hoi,
Ik probeer een subdomein te maken voor een site, op een manier
dat het subdomein gemapt wordt naar een directory binnen de
docroot van de site.
Dat lukt allemaal heel aardig, ik heb dit binnen de <VirtualHost>
staan:
RewriteEngine On
RewriteRule ^/icons/(.+) /usr/share/apache2/icons/$1 [L]
RewriteCond %{HTTP_HOST} ^subdomein\..+
RewriteRule ^/(.*)$ /subdomein/$1 [L]
De rewrite rule voor de icons is nodig, omdat de rewrite rule
voor het subdomein hogere prioriteit blijkt te hebben dan de
Alias die normaal voor de icons zorgt.
Hier ben ik niet blij mee. Althans, ik ben niet blij met dat
padnaam daar. Is er een manier om te zorgen dat /icons buiten de
rewrite rules gehouden wordt?
Verder lijkt het vrij veel processorkracht te kosten, de eerste
keer dat je het subdomein bezoekt. Het duurt meerdere seconden
voordat de server reageert. Vanaf dat moment is alles wel weer
snel. Misschien komt het ook wel door de graceful restart, maar
misschien doe ik iets fout waardoor dit extreem inefficient is.
Iemand tips?
--
Erik Hensema (erik@hensema.net) ICQ# 8280101
A successful [software] tool is one that was used to do something
undreamed of by its author.
-- S. C. Johnson
Daniel Tryba
02/02/04, 23:25
Erik Hensema <usenet@smac.hensema.net> wrote:
> RewriteEngine On
> RewriteRule ^/icons/(.+) /usr/share/apache2/icons/$1 [L]
>
> RewriteCond %{HTTP_HOST} ^subdomein\..+
> RewriteRule ^/(.*)$ /subdomein/$1 [L]
>
> De rewrite rule voor de icons is nodig, omdat de rewrite rule
> voor het subdomein hogere prioriteit blijkt te hebben dan de
> Alias die normaal voor de icons zorgt.
> Hier ben ik niet blij mee. Althans, ik ben niet blij met dat
> padnaam daar. Is er een manier om te zorgen dat /icons buiten de
> rewrite rules gehouden wordt?
> Iemand tips?
Das de RewriteCond aan zodat foo.tld/icons niet matched (mag je over
nadenken of gewoon heel simpel een extra condition toevoegen).
Maar waarom uberhaupt deze rewriterule? Je bent nu specifiek voor
subdomein.domein.tld aan het rewriten. Tenzij je een wildcard voor
subdomein gaat gebruiken is massvirtual host handiger IMHO.
--
Daniel Tryba
Erik Hensema
02/02/04, 23:45
Daniel Tryba (news_nl.internet.www.server-side@canopus.nl) wrote:
> Erik Hensema <usenet@smac.hensema.net> wrote:
>> RewriteEngine On
>> RewriteRule ^/icons/(.+) /usr/share/apache2/icons/$1 [L]
>>
>> RewriteCond %{HTTP_HOST} ^subdomein\..+
>> RewriteRule ^/(.*)$ /subdomein/$1 [L]
>>
>> De rewrite rule voor de icons is nodig, omdat de rewrite rule
>> voor het subdomein hogere prioriteit blijkt te hebben dan de
>> Alias die normaal voor de icons zorgt.
>> Hier ben ik niet blij mee. Althans, ik ben niet blij met dat
>> padnaam daar. Is er een manier om te zorgen dat /icons buiten de
>> rewrite rules gehouden wordt?
>> Iemand tips?
>
> Das de RewriteCond aan zodat foo.tld/icons niet matched (mag je over
> nadenken of gewoon heel simpel een extra condition toevoegen).
Dat probeerde ik, met zoiets:
RewriteCond %{REQUEST_URI} !^/icons.*$
> Maar waarom uberhaupt deze rewriterule? Je bent nu specifiek voor
> subdomein.domein.tld aan het rewriten. Tenzij je een wildcard voor
> subdomein gaat gebruiken is massvirtual host handiger IMHO.
In principe hebben al onze domeinen een wildcard, ja. Als iemand
een typo maakt en naar wwww.hensema.net gaat, dan komt ie toch
terecht op mijn site. Nu is hensema.net een uitzondering, maar je
begrijpt het idee ;-)
Het komt er op neer dat klanten hosting afnemen, en af en toe
vragen om subdomeinen voor hun site. Dit is een uiterst simpele
manier (voor ons en onze klanten) om dat te doen. Dit is zelfs
iets wat klanten zelf mogen doen; vhosts mogen ze niet aanmaken.
--
Erik Hensema (erik@hensema.net) ICQ# 8280101
Quoting-HOWTO: http://www.leerquoten.nl
Daniel Tryba
03/02/04, 00:15
Erik Hensema <usenet@smac.hensema.net> wrote:
>> Maar waarom uberhaupt deze rewriterule? Je bent nu specifiek voor
>> subdomein.domein.tld aan het rewriten. Tenzij je een wildcard voor
>> subdomein gaat gebruiken is massvirtual host handiger IMHO.
>
> In principe hebben al onze domeinen een wildcard, ja. Als iemand
> een typo maakt en naar wwww.hensema.net gaat, dan komt ie toch
> terecht op mijn site. Nu is hensema.net een uitzondering, maar je
> begrijpt het idee ;-)
Nee, ik begrijp het niet. Immers als je dat wilt bereiken is het gewoon
veel handiger om een wildcard serveralias op te nemen in de default.
> Het komt er op neer dat klanten hosting afnemen, en af en toe
> vragen om subdomeinen voor hun site. Dit is een uiterst simpele
> manier (voor ons en onze klanten) om dat te doen. Dit is zelfs
> iets wat klanten zelf mogen doen; vhosts mogen ze niet aanmaken.
Aha, mijn vermoeden is juist, massvirtual hosting lijkt me makkelijker,
het enige wat je daar hoeft te doen als beheerden is een symlinkje aan
te leggen als:
ln -s /home/klant.tld/subdomein /var/httpd/subdomein.klant.tld
--
Daniel Tryba
Erik Hensema
03/02/04, 00:35
Daniel Tryba (news_nl.internet.www.server-side@canopus.nl) wrote:
> Erik Hensema <usenet@smac.hensema.net> wrote:
[over subdomeinen maken met mod_rewrite]
>> Het komt er op neer dat klanten hosting afnemen, en af en toe
>> vragen om subdomeinen voor hun site. Dit is een uiterst simpele
>> manier (voor ons en onze klanten) om dat te doen. Dit is zelfs
>> iets wat klanten zelf mogen doen; vhosts mogen ze niet aanmaken.
>
> Aha, mijn vermoeden is juist, massvirtual hosting lijkt me makkelijker,
> het enige wat je daar hoeft te doen als beheerden is een symlinkje aan
> te leggen als:
> ln -s /home/klant.tld/subdomein /var/httpd/subdomein.klant.tld
Dat gaat niet, want dat wordt al afgevangen door de vhost
configuraties. Die hebben immers allemaal een wildcard. Je komt
dus niet op de default vhost terecht.
--
Erik Hensema (erik@hensema.net) ICQ# 8280101
Quoting-HOWTO: http://www.leerquoten.nl
Daniel Tryba
03/02/04, 00:55
Erik Hensema <usenet@smac.hensema.net> wrote:
>> Aha, mijn vermoeden is juist, massvirtual hosting lijkt me makkelijker,
>> het enige wat je daar hoeft te doen als beheerden is een symlinkje aan
>> te leggen als:
>> ln -s /home/klant.tld/subdomein /var/httpd/subdomein.klant.tld
>
> Dat gaat niet, want dat wordt al afgevangen door de vhost
> configuraties. Die hebben immers allemaal een wildcard. Je komt
> dus niet op de default vhost terecht.
Tsja, dat zuigt inderdaad, ben er zelf ook tegen aan gelopen en heb
besloten de massvirt. niet te gebruiken maar te vervangen door een
simpel ssscript dat indien de url !^www.domain.tld te zoek naar
/documentroot/domain/$1/ waar $1 uit ^(.*).domain.tld/ gehaalt wordt
indien die directory bestaat en anders naar /documentroot/domain/.
Maar die gedachte had ik al vele manen geleden :)
--
Daniel Tryba