Domeinnaam opvangen
Vandaag ben ik weer met wat bezig wat ik tot op heden nog niet heb uitgevoerd :O
Ik heb een domein.nl op server X, deze verwijs ik door via 2 a-records naar server Y.
Hoe kan ik de domeinnaam opvangen op server Y en specificeren naar welke map deze moet re-directen?
Welke webserver gebruik je? En gebruik je een controlepaneel?
Gewijzigd op 15/03/2017 12:11:19 door - Ariën -
Strikt genomen bevat die de hostnaam, niet de domeinnaam: je kunt er dus op de domeinnaam example.com een onderscheid mee maken tussen de hostnamen www.example.com en blog.example.com.
- Ariën - op 15/03/2017 12:10:45:
Met Virtual Hosts.
Welke webserver gebruik je? En gebruik je een controlepaneel?
Welke webserver gebruik je? En gebruik je een controlepaneel?
1.Apache
2.Direct Admin
Toevoeging op 15/03/2017 12:18:14:
Ward van der Put op 15/03/2017 12:12:07:
Dat kan met $_SERVER['HTTP_HOST'].
Strikt genomen bevat die de hostnaam, niet de domeinnaam: je kunt er dus op de domeinnaam example.com een onderscheid mee maken tussen de hostnamen www.example.com en blog.example.com.
Strikt genomen bevat die de hostnaam, niet de domeinnaam: je kunt er dus op de domeinnaam example.com een onderscheid mee maken tussen de hostnamen www.example.com en blog.example.com.
Ik begrijp je nog niet helemaal Ward. Ik kan de domeinnaam opvangen door:
$_SERVER['HTTP_IPVANDEHOST'] toe te voegen aan mijn .htaccess? Waar kan ik dan de domeinnaam zelf definiëren, of is dat niet nodig?
In direct admin kan je gewoon een domein aanmaken.
Je heb de mogelijkheid om op 1 server meerdere websites te hebben, die allemaal niets met elkaar te maken hebben. Dan heb je het over virtual hosts.
Je kunt ook meerdere domeinnamen op 1 documentroot uit laten komen. Bijvoorbeeld www.phphulp.nl en phphulp.nl (wat beide strikt genomen niet hetzelfde is)
Maar ook webshopA.nl en webshopB.nl kun je samen op 1 documentroot draaien.
En dan heb heb je in die variant ook weer 2 opties:
Of exact dezelfde code draaien en een keuze maken mbt $_SERVER['HTTP_HOST"] maken wat voor logo en kleuren je gebruikt.
of naar een submap verwijzen.
Sowieso zul je op de meeste servers moeten aangeven dat domeinnaam X op een zekeren documentroot uitkomt.
Als dat een gedeelde documentroot is, kun je ServerAlias gebruiken
Met een A-record leidt je verkeer naar een bepaald IP-adres, dus in jouw het IP-adres van server Y. Op server Y moet je vervolgens op een of andere manier de hostnaam uit het oorspronkelijke request gebruiken. Dat kan door aparte directories voor virtuele hosts te gebruiken, maar je kunt ook alles via één centrale index.php als de frontcontroller afhandelen.
Ik noemde die mogelijkheid vooral als suggestie voor een alternatief dus. Als sites compleet los staan van elkaar, zijn virtuele hosts de oplossing, maar als ze op een of andere manier samenhangen, dan kan één centrale frontcontroller van pas komen.
- Ariën - op 15/03/2017 12:28:21:
In direct admin kan je gewoon een domein aanmaken.
Dat heb ik inderdaad gedaan, maar dan wordt hij al opgepakt automatisch? Ben wel benieuwd naar de werking erachter..
Server X heeft domeinnaam met de ip van de server. Nu pas ik het IP aan en vertel ik als domein.nl ingetypt wordt moet verwijzen naar server Y met ipXXXXX.
Ik heb domein.nl aan de DirectAdmin van server Y toegevoegd.
DirectAdmin maakt dan waarschijnlijk een Virtualhost aan voor je
Aan de hand daarvan weet server Y welke domein er bedoelt wordt.
En die configuratie staat in de Virtual Host die Direct Admin heeft aangemaakt.
Gewijzigd op 15/03/2017 12:37:17 door - Ariën -
Ward van der Put op 15/03/2017 12:29:15:
$_SERVER['HTTP_HOST'] is een PHP-servervariabele. Hierin vindt je de hostnaam uit het HTTP-request.
Met een A-record leidt je verkeer naar een bepaald IP-adres, dus in jouw het IP-adres van server Y. Op server Y moet je vervolgens op een of andere manier de hostnaam uit het oorspronkelijke request gebruiken. Dat kan door aparte directories voor virtuele hosts te gebruiken, maar je kunt ook alles via één centrale index.php als de frontcontroller afhandelen.
Ik noemde die mogelijkheid vooral als suggestie voor een alternatief dus. Als sites compleet los staan van elkaar, zijn virtuele hosts de oplossing, maar als ze op een of andere manier samenhangen, dan kan één centrale frontcontroller van pas komen.
Met een A-record leidt je verkeer naar een bepaald IP-adres, dus in jouw het IP-adres van server Y. Op server Y moet je vervolgens op een of andere manier de hostnaam uit het oorspronkelijke request gebruiken. Dat kan door aparte directories voor virtuele hosts te gebruiken, maar je kunt ook alles via één centrale index.php als de frontcontroller afhandelen.
Ik noemde die mogelijkheid vooral als suggestie voor een alternatief dus. Als sites compleet los staan van elkaar, zijn virtuele hosts de oplossing, maar als ze op een of andere manier samenhangen, dan kan één centrale frontcontroller van pas komen.
Bedankt voor jouw uitleg Ward, maakt het weer een stuk duidelijker, super.
Toevoeging op 15/03/2017 12:53:55:
- Ariën - op 15/03/2017 12:36:25:
Bij server X in de DNS staat een verwijzing naar het IP van server Y. In de request naar de site die je dit geeft je browser de domein mee in de request-headers.
Aan de hand daarvan weet server Y welke domein er bedoelt wordt.
En die configuratie staat in de Virtual Host die Direct Admin heeft aangemaakt.
Aan de hand daarvan weet server Y welke domein er bedoelt wordt.
En die configuratie staat in de Virtual Host die Direct Admin heeft aangemaakt.
Duidelijk Ariën. Ik ben weer een stukje wijzer geworden, bedankt voor de moeite.