PDA

Bekijk Volledige Versie : Apache pagina op subdomeinen



Rappie
25/10/10, 00:08
Ik kom er even niet meer uit geloof ik.

De standaard apache server pagina wordt weergegeven op elk 'subdomein'. Dat komt omdat er voor elk domein een wildcard record in de DNS staat. (Waarover ik helaas geen controle heb.) Ik heb liever dat er helemaal geen pagina wordt geserveerd als als de subdomein niet in de DNS staat of een eigen vhost is.

Wat zou hiervoor een makkelijk oplossing zijn? Mijn eerste gedachte was geen DNS wildcard, maar ik heb geen controle over de DNS. Mijn tweede gedachte was een *.domein.tld als allias voor elke virtualhost. Maar er staat 136 virtualhosts op de server, ik zie er een beetje tegen op om dit handmatig allemaal aan te passen.

Is er een overkoepelende oplossing die ik over het hoofd zie?

The-BosS
25/10/10, 00:42
De simpelste oplossing zou inderdaad zijn om de wildcard van de dns te verwijderen, maar aangezien dit geen optie is kan je nog volgende dingen proberen.

Aangezien apache eerst kijkt of het vhost bestaat en hiervan de config toont, maar bij een wildcard dit niet bestaat kijkt hij naar het ip adress. Bestaat hiervoor een config (vhost, alias) voor dat ip adress dan toont hij de site (path) van die config. Bestaat dit ook niet dan vervalt hij naar de default config. Wat in jouw geval dus zal zijn aangezien je de default apache pagina krijgt.

Je kan dus ofwel een vhost op dat ip maken met de site die je wilt.
Je zou een vhost kunnen maken met *.domain.tld in de alias en dit verwijzen naar het root path. In dat root path kan je dan vervolgens het een .htaccess file via de rewrite module de subdomains naar de correcte paths gaan verwijzen.
Andere optie die je ook kan proberen is om een config met vhost alias *.domain.tld te maken die verwijst naar het path (site) die je wilt. Hou er dan wel rekening mee dat je die config file pas als laatste gaat inladen. Als je dit manueel doet is dit de beste oplossing, als je gebruik maakt van een control panel heb je de vhost volgorde niet echt in de hand.