PDA

Bekijk Volledige Versie : Wildcard op subdomein



MikeVrind
04/06/10, 09:29
Goedemorgen,

Ik zit met een vraag waarvan ik stiekem hoop op een makkelijk antwoord.
Met enige regelmaat bouw ik websites en voor het ontwikkelen daarvan maak ik gebruik van een subdomein op mijn website genaamd 'test'.
Iedere website die ik maak is dus te bereiken via test.website.nl/naam-website/...

Bij deze constructie ondervindt ik alleen veel problemen wanneer de website online gaat omdat bij het bouwen de website niet in de 'root' draait. Hierdoor worden allerlei bestanden op een andere manier benaderd.

Als oplossing heb ik bedacht om een wildcard subdomein op test.website.nl aan te maken zodat iedere website is te bereiken via naam-website.test.website.nl.
Hierdoor draait namelijk iedere website wel in de 'root' en zijn de aanpassingen bij het live gaan minimaal.

Nu is dus mijn vraag, hoe maak ik een wildcard aan op test.website.nl en hoe zorg ik ervoor dat iedere map op test.website.nl te bereiken is via deze constructie?

marsipulami
04/06/10, 09:41
Ik denk dat je voor iedere map die je creeërt een virtual_host moet laten genereren. Dit zou je bijvoorbeeld automatisch middels een bash script kunnen laten doen en deze in een cron zetten.

Vervolgens httpd restarten en named, dit in de bash file toevoegen, en dan moet het werken.

Misschien kan het wel sneller, maar hier zit ik zelf aan te denken.

Waarom niet gewoon een subdomein aanmaken op test.website.nl?? Dan moet je wel test.website.nl toevoegen als nieuwe site, en niet als subdomein.

MikeVrind
04/06/10, 09:57
Misschien dat me vraag niet helemaal duidelijk is, maar dat istoch in feite precies wat ik vroeg, een subdomein aanmaken op test.website.nl, maar dan een wildcard zodat ik niet iedere keer per website een nieuw subdomein hoef aan te maken of bepaalde dingen te herstarten.

In DA zie ik ook geen optie om op een subdomein, een subdomein aan te maken.

marsipulami
04/06/10, 10:10
daarom zeg ik ook dat je test.website.nl niet als subdomein van website.nl moet aanmaken, maar als nieuwe klant. dan kan je er weer subdomeinen aan hangen

Triloxigen
04/06/10, 10:11
htaccess/mod_rewrite:
rewritre_base
rewriterule
redirect

marsipulami
04/06/10, 10:14
dan draait de site nog steeds niet uit de root toch?

groenleer
04/06/10, 10:26
Ik zou denken een speciale testbak met iets als Apache 2, VirtualDocumentRoot en Wildcard hosting...
En wat betreft je DNS, test.website.nl als nieuw domain invoeren, en niet als subdomain.
Verder in de DNS een wildcard record toevoegen met een * als recordname.

MikeVrind
04/06/10, 10:33
Kan ik test.domein.nl als nieuw domein invoeren in de bestaande user of zou er dan een nieuwe user moeten worden aangemaakt?

Het is toch gewoon mogelijk om nog een sub aan te maken op test.website.nl of is er een reden dat jullie adviseren eerst test.website.nl als nieuwe user/domein toe te voegen?

marsipulami
04/06/10, 10:36
DA kent de andere variant niet. dan zou het handwerk worden ;)

MikeVrind
04/06/10, 10:40
Ik heb uiteraard zelf ook al een beetje rond zitten zoeken op het forum van DA en kwam daar wel iets tegen over het aanpassen van het/een httpd.conf bestand zodat er een wildcard op een subdomein kon worden aangemaakt?

Ik ben in deze materie alleen niet zo thuis dus ga het ook absoluut niet zomaar uit proberen :).

The-BosS
04/06/10, 11:50
en waarom niet gewoon in je html code bij je headers dit ingeven:


<base href="http://test.website.nl/projectnaam" />

Dan ziet hij deze directory als zijnde root als je bvb geen full url's gebruikt maar plakt hij dit er voor in FF/IE/....
Nu als je geen template systeem gebruikt kan het wel wat lastig zijn om dit bij iedere page te doen maar met template systeem is het maar een eenmalige aanpassing als url veranderd.

MikeVrind
04/06/10, 12:13
Dat is ook wat ik nu doe alleen heeft dit uiteraard geen effect om enkele PHP applicaties.
Neem bijvoorbeeld CKeditor/CKfinder. Ik gebruik altijd een map genaamd 'userfiles' waarin ik CKfinder de bestanden laat zoeken en uploaden maar dan moet ik dus aangeven dat de map userfiles is te vinden op naam-website/userfiles/.

Uiteraard geen probleem, zo gebeurd en ook zo aangepast later. Maar alle content die vervolgens wordt opgeslagen bevat verwijzigen naar website-naam/userfiles terwijl dit in de live omgeving alleen userfiles/ hoeft te zijn.

Keizer
04/06/10, 12:33
Ik zou gewoon per website een aparte DA user account aanmaken, onder de noemer van *.test.website.nl

Je hebt de websites dan werkend in de root, alles bij de hand in één account, en je hoeft bij de livegang alleen maar de domeinnaam te wijzigen naar de nieuwe (en natuurlijk wat aanpassingen in configs)

Nadeel is dat je in je ontwikkelomgeving alle sites moet toevoegen met FTP gegevens enzo ipv die ene die je normaal gebruikt...

MikeVrind
04/06/10, 13:05
Dat is dus teveel werk, hoe minder werk hoe beter natuurlijk.

Maar is het niet mogelijk met wat ik eerder omschreef dan, een wildcard subdomein op test.website.nl toevoegen?
Dat het niet direct via het DA paneel kan oke, maar ik heb de optie om config. bestanden te wijzigen.

groenleer
04/06/10, 16:26
MikeVrind, dat zou wel moeten kunnen. Je kan eens stoeien met VirtualDocumentRoot en een wildcard vhost. Uitleg staat bij DirectAdmin in de KB.

MikeVrind
07/06/10, 13:56
Ik heb in de KB van DA niks kunnen vinden of ik moet echt op verkeerde termen hebben gezocht.

Wat er nu in de VH staat voor het test sudbomein:



ServerName www.test.domein.nl
ServerAlias www.test.domein.nl test.domein.nl
ServerAdmin webmaster@domein.nl
DocumentRoot /home/~username~/domains/domein.nl/public_html/test


Maar is het niet mogelijk een dergelijke opzet te maken?
Beetje HTaccess achterliggende gedachte waarbij je een variabel gegeven dmv van $1 op kan vragen :)


ServerName www.*.test.domein.nl
ServerAlias www.*.test.domein.nl *.test.domein.nl
ServerAdmin webmaster@domein.nl
DocumentRoot /home/~username~/domains/domein.nl/public_html/test/$1

Smart-Guyz
08/06/10, 03:51
Ik weet niet of het met HTaccess kan, maar je kan het altijd doen met een klein PHP scriptje:


<?php
$aHost = explode(".", $_SERVER["HTTP_HOST"]);
$sVar = ((strtolower($aHost[0]) == "www") ? $aHost[1] : $aHost[0]);

header("Location: http://www.domein.nl/{$sVar}");
?>

marsipulami
08/06/10, 09:03
Ik weet niet of het met HTaccess kan, maar je kan het altijd doen met een klein PHP scriptje:


<?php
$aHost = explode(".", $_SERVER["HTTP_HOST"]);
$sVar = ((strtolower($aHost[0]) == "www") ? $aHost[1] : $aHost[0]);

header("Location: http://www.domein.nl/{$sVar}");
?>

Volgens mij gaat dat ook niet werken. Dan draait de site alsnog niet vanuit een root en daar gaat het om

MikeVrind
08/06/10, 10:14
Het gaat er inderdaad om dat een test-locatie in een root komt te draaien.
De belangrijkste reden hiervoor is de content die door de gebruiker zelf in wordt gevoerd op de test-locatie voordat een website live gaat.

Ieder plaatje en linkje dat een gebruik binnen de test-omgeving invoert bevat in de verwijzing een extra folder die er in de live omgeving gewoon niet is.