Toon posts:

[Apache] mod_vhost_alias en mod_rewrite

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik zit met mijn handen in het haar bij het maken van een correcte httpd.conf. Ik maak gebruik van mod_vhost_alias aangezien er een groot aantal domeinen op deze webserver dienen te draaien. Verder maak ik gebruik van mod_rewrite omdat er standaard www. voor een domein gezet dient te worden wanneer dit er niet voor staat.

Ik heb twee verschillende problemen:
- Wanneer een domein niet bestaat, dient er naar een standaard domein verwezen te worden.
- Wanneer er database.domeinnaam.tld opgevraagt wordt, moet er naar de directory 'database' in de documentroot gerewrite worden.

Wat ik tot dusver heb is dit:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
UseCanonicalName Off

<VirtualHost *:80>

        RewriteEngine on

        # Wanneer er geen www-domein voor het domein staat, wordt er www voor geplaatst
        # Mocht er een ander subdomein voor het www adres staan, dan wordt er niks voorgeplaatst
        RewriteCond %{HTTP_HOST} !^.*\..*\..*$ [NC]
        RewriteRule ^(.*)$ http://www.%{HTTP_HOST}$1 [R=301,L]

        # www.test.nl --> /vol/www/test.nl/
        # test.nl --> /vol/www/test.nl/
        VirtualDocumentRoot /vol/www/%-2.0.%-1.0/
        VirtualScriptAlias /vol/www/%-2.0.%-1.0/cgi-bin/
</VirtualHost>

Dit werkt allemaal. Maar nu de problemen dus. Ik dacht dus, om zodra er een niet bestaande domeinnaam wordt opgevraagd, maak ik gewoon een nieuwe virtualhost aan met _default_ erin. Dus, ik zet zoiets onder mijn huidige configuratie:

code:
1
2
3
<VirtualHost _default_:*>
        DocumentRoot /vol/www/default
</VirtualHost>


Maar dan krijg je een 404 en wordt er volgens mij niet eens naar die _default_ gekeken.... :(
Dat is dus het eerste probleem.

Verder krijg ik geen RewriteCond en RewriteRule voor elkaar die database.domein.tld naar iets anders laat gaan. Volgens mij zijn er twee mogelijkheden, dat ik een redirect maakt met mod_rewrite zodat database.domein.tld naar www.domein.tld/database gaat. Of dat ik de VirtualDocumentRoot herschrijf. Maar wat ik ook probeer, dat lukt niet. Waarschijnlijk omdat die andere RewriteRule in de weg zit. Maar ik kan dit dus niet combineren...