Permalänk
99:e percentilen

Hur gör jag subdomäner?

Jag håller på och skapa en sajt där användarna kommer kunna skapa egna konton. Vi låtsas att sajtens domän är foo.se. URLen till användaren Berits profilsida kommer då vara foo.se/berit.

Men jag vill även ha några sidor som inte är användarprofiler, t ex en Om-sida. Då vill jag att URLen till denna ska vara om.foo.se. (Jag vill inte ha foo.se/om, för då går det ju inte att skapa ett konto som heter Om.)

Domänen är registrerad på Binero, men hostingen sker på min egen server. Jag väntar på en komponent som är nödvändig för att kunna starta den, så jag har ännu inte ens något OS på den. Rekommenderas Windows 7, Ubuntu Desktop eller Ubuntu Server? Jag kan ingenting om Ubuntu, men det är såklart bra att lära sig. Har Server någon stor prestandafördel mot Desktop?

Jag tänker köra LAMP eller LAMPP eller XAMPP eller vad det nu heter, alltså Apache och PHP.

Vad behöver jag för att skapa nämnda subdomäner och hur går jag tillväga?

Visa signatur

Skrivet med hjälp av Better SweClockers

Permalänk
Medlem

Skapa ett wildcard på din domän. *.foo.se och sen gör du så att Apache (eller vilken webserver du nu använder) tar emot den. Sen kollar du i server side språket vilken subdomän som efterfrågas och visar relevant sida (http header "host").

Permalänk
99:e percentilen
Skrivet av iXam:

Skapa ett wildcard på din domän. *.foo.se och sen gör du så att Apache (eller vilken webserver du nu använder) tar emot den. Sen kollar du i server side språket vilken subdomän som efterfrågas och visar relevant sida (http header "host").

Det fetmarkerade förstår jag. Det med att Apache ska "ta emot den" förstår jag inte. Det sista, ska jag då göra så här:

<?php $headers = apache_request_headers(); foreach ($headers as $header => $value) { if ($header == 'host' && $value == 'om') { // visa Om-sidan } } ?>

Eller går det att göra det på ett enklare sätt, typ:

<?php if (apache_request_headers['host'] == 'om') { // visa Om-sidan } ?>

Visa signatur

Skrivet med hjälp av Better SweClockers

Permalänk
Medlem

Med att Apache skulle "ta emot" syftade jag på att du ska konfigurera så den svarar på "om.foo.se". Eller om du bara har en domän på servern så spelar det ju ingen större roll.

if($_SERVER['HTTP_HOST'] == "om.foo.se") print "Weeeee";

Permalänk
99:e percentilen
Skrivet av iXam:

if($_SERVER['HTTP_HOST'] == "om.foo.se") print "Weeeee";

Är detta verkligen det "rätta" sättet att göra det på? Det verkar för enkelt, det känns som en fullösning och det känns som att det inte borde göras i PHP.

Visa signatur

Skrivet med hjälp av Better SweClockers

Permalänk
Medlem
Skrivet av Zuggmate:

Är detta verkligen det "rätta" sättet att göra det på? Det verkar för enkelt, det känns som en fullösning och det känns som att det inte borde göras i PHP.

Tja du kan ju köra en virtual host om det känns bättre. http://httpd.apache.org/docs/2.0/vhosts/examples.html

Permalänk
99:e percentilen
Skrivet av iXam:

Tja du kan ju köra en virtual host om det känns bättre. http://httpd.apache.org/docs/2.0/vhosts/examples.html

Förlåt mig, det var inte meningen att vara ohyfsad.

Går det att göra på det sättet (PHP) om man ska hosta två sajter på servern?

Visa signatur

Skrivet med hjälp av Better SweClockers

Permalänk
Medlem
Skrivet av Zuggmate:

Förlåt mig, det var inte meningen att vara ohyfsad.

Går det att göra på det sättet (PHP) om man ska hosta två sajter på servern?

Ska du ha två *olika* siter på servern så ska du köra virtual hosts men eftersom "om.foo.se" inte var en helt annan sida så gav jag förslaget att köra med det i PHP.

Permalänk
99:e percentilen
Skrivet av iXam:

Ska du ha två *olika* siter på servern så ska du köra virtual hosts men eftersom "om.foo.se" inte var en helt annan sida så gav jag förslaget att köra med det i PHP.

Då blir det nog till att använda PHP-koden till om.foo.se och köra virtual host för den andra sajten som jag planerar att hosta i framtiden.

Behöver jag göra något speciellt nu för att kunna köra virtual host i framtiden?

Visa signatur

Skrivet med hjälp av Better SweClockers