[Apache] Uitzondering op Virtualdocumentroot

Pagina: 1
Acties:

  • Quarin
  • Registratie: Augustus 2002
  • Laatst online: 19-02 14:27

Quarin

Ondertitel... wasda?

Topicstarter
Ik draai apache 2.0.55 op een win2k3 server maar heb wat problemen met virtualdocumentroot.

Ik wil dat alles van x.domein.net naar C:/webroot/users/x/ gaat behalve www.domein.net en domein.net die moeten naar c:/webroot/

Ik heb de volgende configuratie (ook een hele hoop andere manieren geprobeerd maar dit komt het dichtste in de buurt van werkend)
code:
1
2
3
4
5
6
7
8
9
10
11
NameVirtualHost *:80

<VirtualHost *:80>
    VirtualDocumentRoot c:/webroot/users/%1
</VirtualHost>

<VirtualHost *:80>
    ServerName domein.net
    DocumentRoot "C:/webroot"
    ServerAlias www.domein.net
</VirtualHost>

x.domein.net wordt mooi doorgestuurd en ook www.domein.net wordt dat mooi niet, alleen domein.net wordt doorgestuurd naar c:/webroot/users/domein/ en ik weet gewoon niet hoe ik dat moet voorkomen. Alle help files en topics doorzocht maar waarschijnlijk zie ik gewoon iets heel simpels over het hoofd..

edit: aangepast vanwege erkens reactie

[ Voor 10% gewijzigd door Quarin op 18-04-2006 20:26 ]


  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

Bij die tweede moet je geen VirtualDocumentRoot hebben want dat is het niet (en afaik kon dat ook niet eens met 1 ip) :)
code:
1
2
3
4
5
<VirtualHost *:80>
    ServerName domein.net
    DocumentRoot "C:/webroot"
    ServerAlias www.domein.net
</VirtualHost>

  • Quarin
  • Registratie: Augustus 2002
  • Laatst online: 19-02 14:27

Quarin

Ondertitel... wasda?

Topicstarter
Oh stom dat ik dat had laten staan. Dat was een van de dingen die ik getest heb, niet dat het veel uitmaakt want zonder dat virtual geeft hij precies dezelfde fout, ik pas het wel even aan in de topicstart.

  • Quarin
  • Registratie: Augustus 2002
  • Laatst online: 19-02 14:27

Quarin

Ondertitel... wasda?

Topicstarter
kick...

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

Quarin schreef op dinsdag 18 april 2006 @ 20:21:
Oh stom dat ik dat had laten staan. Dat was een van de dingen die ik getest heb, niet dat het veel uitmaakt want zonder dat virtual geeft hij precies dezelfde fout, ik pas het wel even aan in de topicstart.
welke fout krijg je dan?

  • b19a
  • Registratie: September 2002
  • Niet online
En als je het eens verandert in:
code:
1
2
3
4
5
< VirtualHost *:80>
    ServerName www.domein.net
    ServerAlias domein.net
    DocumentRoot "C:/webroot"
</VirtualHost>
(www. verwisselen)

  • G33rt
  • Registratie: Februari 2002
  • Laatst online: 22-06-2022
Waarom bouw je er een vhost voor? Maak een rewrite rule die domein.net naar www.domein.net laat rewriten en je probleem is opgelost :)

  • Quarin
  • Registratie: Augustus 2002
  • Laatst online: 19-02 14:27

Quarin

Ondertitel... wasda?

Topicstarter
BoukeHaarsma schreef op woensdag 19 april 2006 @ 20:03:
En als je het eens verandert in:
code:
1
2
3
4
5
< VirtualHost *:80>
    ServerName www.domein.net
    ServerAlias domein.net
    DocumentRoot "C:/webroot"
</VirtualHost>
(www. verwisselen)
Dit geeft precies hetzelfde resultaat :
code:
1
[Thu Apr 20 17:02:18 2006] [error] [client 10.0.0.200] File does not exist: C:/webroot/users/domein

(hij parsed domein.net dus met de virtualdocumentroot in plaats van dezelfde als www.domein.net)
Maar ik ga wel even proberen of ik het voor elkaar krijg met mod rewrite.

  • Stainless Steel
  • Registratie: Februari 2002
  • Niet online
Je moet de volgorde omdraaien, eerst de uitzonderingen en dan de algemene regel.

code:
1
2
3
4
5
6
7
8
9
10
11
NameVirtualHost *:80

<VirtualHost *:80>
    ServerName domein.net
    ServerAlias www.domein.net
    DocumentRoot "C:/webroot"
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot c:/webroot/users/%1
</VirtualHost>

[ Voor 9% gewijzigd door Stainless Steel op 20-04-2006 18:07 ]


  • Quarin
  • Registratie: Augustus 2002
  • Laatst online: 19-02 14:27

Quarin

Ondertitel... wasda?

Topicstarter
Okay, ik heb het inderdaad voor elkaar gekregen met mod_rewrite en voor de search zal ik daarom de oplossing geven:

code:
1
2
3
4
5
RewriteEngine On
RewriteCond   %{HTTP_HOST}                 ^[^.]+\.domein\.net$ [NC]
RewriteCond   %{HTTP_HOST}                 !^www\.domein\.net [NC]
RewriteRule   ^(.+)                        %{HTTP_HOST}$1          [C]
RewriteRule   ^([^.]+)\.domein\.net(.*)    /users/$1$2


(roestvrij staal`s oplossing werkte niet)
Pagina: 1