Ik wil graag subdomeinen aanmaken voor mijn website. Ik gebruik Apache in combinatie met PHP en MySQL. Ik maak gebruik van MOD_REWRITE om de URL’s wat SEO vriendelijker te maken. Mijn huidige situatie is als volgt:
@Jas_per_post Dat werkt ook niet. Ik vermoed dat ik iets moet aanpassen aan de configuratie van Apache. Mijn wildcard staat in mijn DNS aan en de VirtualHost staat als volgt geconfigureerd:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName example.com
DocumentRoot /var/www/example/
<Directory />
Options FollowSymLinks
AllowOverride All
Order allow,deny
allow from all
</Directory>
<Directory /var/www/example>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
ErrorLog /var/log/apache2/error.log
LogLevel warn
CustomLog /var/log/apache2/access.log combined
ServerSignature On
</VirtualHost>
Als ik nu http://martijn2008.example.com in tik, dan komt de site uit de server root tevoorschijn. Dat is niet mijn bedoeling, vandaar ik mij afvraag of het niks met de VirtualHost instellingen te maken heeft.
Zelf heb ik dit ooit gedaan dmv Google.be: Wildcard DNS. Je host moet dit wel ondersteunen...! Je kan dan de gebruikte domeinnaam (<username.jedomein.ext dus) uitlezen uit de $_SERVER variabele.
Toen heb ik een A-record *.mijndomein.ext moeten maken om alles te laten werken. Zal vanavond even kijken of ik het script nog heb (hoewel ik hier een beetje voor vrees...)
je moet zorge dat je catch all insteld op de server (ik heb dit gedaan door het hostingbedrijf te mailen en die regelde dat)
en dan plaats je op de index een code die het subdomein uitleest en dan doorstuurt naar de juiste pagina
Ik vind het nogal apart dat ik de website uit mijn wwwroot zie, en niet de site uit de submap example(zie mijn VirtualHost configuratie; vorige pagina). Ik tik het volgende URL in www.%USERNAME%.example.com
Ik vind het nogal apart dat ik de website uit mijn wwwroot zie, en niet de site uit de submap example(zie mijn VirtualHost configuratie; vorige pagina). Ik tik het volgende URL in www.%USERNAME%.example.com
Niet zo vreemd, je stuurt immers alle requests door naar je DocumentRoot
Ik gebruik daarvoor VirtualDocumentRoot, in deze structuur:
Dan kan je subdomeinen aanmaken in de domains map, zeg fotos.
Je kan de map dan bereiken via fotos.domein.nl
---
Het is echter geen oplossing voor jou probleem.
Je zult alle requests naar een script moeten sturen, die dan de URL gaat ontleden en de juiste username gebruiken
toevoegen in je VirtualHost sectie, maar ik weet niet zeker of het wel nodig is.
EDIT:
Je zegt dat alle requests in de wwwroot map komen, dan kan je toch in de index.php wat inbouwen die kijkt of er een username is 'ingevoerd' in de link?
Wil je hem echter herschrijven naar index.php?profile=$p moet je het bij .htaccess zoeken, i.c.m. mod_rewrite
Bedankt Medieval voor jouw uitleg. Ik begin het nu een beetje te begrijpen. Krijg alleen nu wel een error op VirtualDocumentRoot. Enig idee hoe ik dat kan verhelpen?
Let wel dat je structuur moet zijn zoals ik beschreef (iig met dat www, domein en symbolic link), want anders gaat het mis
%1 is namelijk het eerste deel na de http://, dus http://www.domein.nl komt in de www map, en http://domein.nl in de domein map
EDIT
Hierboven moet de map domein.nl domein zijn, zonder de tld
Ook in de post hierboven
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName *.example.com
VirtualDocumentRoot /var/www/example/
<Directory />
Options FollowSymLinks
AllowOverride All
Order allow,deny
allow from all
</Directory>
<Directory /var/www/example>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
# This directive allows us to have apache2's default start page
# in /apache2-default/, but still have / go to the right place
# RedirectMatch ^/$ /apache2-default/
</Directory>
ErrorLog /var/log/apache2/error.log
LogLevel warn
CustomLog /var/log/apache2/access.log combined
ServerSignature On
</VirtualHost>
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName *.example.com
VirtualDocumentRoot /var/www/example/
<Directory />
Options FollowSymLinks
AllowOverride All
Order allow,deny
allow from all
</Directory>
<Directory /var/www/example>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
# This directive allows us to have apache2's default start page
# in /apache2-default/, but still have / go to the right place