Avatar billede svjensen Nybegynder
13. januar 2004 - 21:25 Der er 17 kommentarer og
1 løsning

Problem med subdomæne script

Vha. nedenstående script har jeg et antal pseudo-subdomæner.
Det eneste problem er bare, at hvis jeg skriver domænenavn.dk eller www.domænenavn.dk, så virker skidtet ikke.

Hvad er galt?


<?
list($adr1,$adr2,$adr3) = split("\.",$_SERVER['HTTP_HOST']);
if ($adr3) { // Der er angivet et subdomæne.
  header("location: http://domænenavn.dk/".$adr1."/");
}
else{
  header("location: http://domænenavn.dk/default(1).asp");
}
?>
Avatar billede zyco_dk Nybegynder
13. januar 2004 - 23:40 #1
jeg ville bruge en submit som kan finde et subdomæn på en server
Avatar billede Slettet bruger
14. januar 2004 - 02:55 #2
<?

// Fjern en eventuel www i starten
$host=preg_replace("/^www\./",'',$_SERVER['HTTP_HOST']);
$array = split("\.",$host);

// Pil de to sidste elementer ud,
$dom=array_pop($array);
$dom= array_pop($array) . "." . $dom;

// Nu har vi serveradressen
$adresse="http://{$dom}/";

if(count($array)>0){
  $nyarray=array_reverse($array);
  foreach($nyarray as $part) {
    $adresse.=$part . '/';
  }
} else {
  $adresse.='default(1).asp';
}
?>
Avatar billede Slettet bruger
14. januar 2004 - 02:59 #3
Det specielle ved mit forslag er, at der er mulighed for mere end et niveau underdomæner.

For eksempel vil både http://hugo.elever.domæne.dk/ og http://www.hugo.elever.domæne.dk/ blive til http://domæne.dk/elever/hugo/

Altså: et underdomæne til et underdomæne bliver lavet om til en undermappe til en undermappe.
Avatar billede svjensen Nybegynder
14. januar 2004 - 20:38 #4
Det virker stadig ikke.
Jeg får følgende fejlmeddelelse:

Forbidden
You don't have permission to access / on this server.
Avatar billede svjensen Nybegynder
14. januar 2004 - 20:51 #5
Status lige nu er følgende virker:
http://niveau1.dom.dk/

Følgende virker ikke:
http://www.niveau1.dom.dk/
http://niveau2.niveau1.dom.dk/
http://www.dom.dk/
http://dom.dk/

Jeg har kopieret dit script fuldstændigt.
Avatar billede svjensen Nybegynder
14. januar 2004 - 20:58 #6
Betyder det noget at jeg har mit hotel hos b-one? De anvender php4.
Avatar billede svjensen Nybegynder
14. januar 2004 - 21:12 #7
Til syneladende er serveren hos b-one sat op til at fange subdomæner.
således bliver http://niveau1.dom.dk automatisk sendt til dom.dk/niveau1 udenom scriptet.
Det ser desuden ud til at jeg ikke automatisk kan "starte" med default-php (i stil med default.asp).
Ved I hvordan jeg kan ændre det? Eller er det i en anden kategori?
Avatar billede svjensen Nybegynder
14. januar 2004 - 21:13 #8
default-php = default.php
Avatar billede Slettet bruger
14. januar 2004 - 21:15 #9
Ups. Jeg havde glemt en linie med

header("Location: $adresse");

i scriptet, men den har du måske fanget?
Avatar billede Slettet bruger
14. januar 2004 - 21:29 #10
Måske php-scriptet skal hedde index.php
Avatar billede svjensen Nybegynder
14. januar 2004 - 21:35 #11
Nej, det virker ikke
Avatar billede svjensen Nybegynder
14. januar 2004 - 21:39 #12
Hov, der var jeg lidt for hurtig.
Det virker.
Avatar billede svjensen Nybegynder
14. januar 2004 - 21:45 #13
Men det ser ud til at jeg ikke kan bruge scriptet pga. den automatiske viderestilling på serveren.
Avatar billede svjensen Nybegynder
14. januar 2004 - 21:54 #14
Tak for hjælpen 'sandbox'. Om ikke andet så lærte jeg lidt mere php.

Søren
Avatar billede Slettet bruger
14. januar 2004 - 21:55 #15
Jeg bruger ikke b-one, så jeg aner ikke, hvordan de gør. (og der står heller ikke rigtig noget på deres sider.)

Men det er naturligvis klart, at mit script kun kan virke, hvis serveren faktisk kører det.

Hvad sker der præcist, når du prøver:

http://www.niveau1.dom.dk/
http://niveau2.niveau1.dom.dk/
http://www.dom.dk/
http://dom.dk/
Avatar billede svjensen Nybegynder
15. januar 2004 - 22:05 #16
www.dom.dk og dom.dk virker, og eksekverer min index.php (dit script) og sender mig til default(1).asp.
For de to andres vedkommende, så får jeg en 'HTTP 400 - ugyldig anmodning'

Mit gæt er, at serveren kigger på url'en, og accepterer et niveau subdmæne, og derfor sender mig til den tilsvarende undermappe. Hvis der er to niveauer, så kan den tilsyneladende ikke hakke det, og stopper uden at gøre mere.
Avatar billede svjensen Nybegynder
15. januar 2004 - 22:06 #17
Det er vel et spørgsmål om, at serveren kun er sat op til et niveau?!
Til gengæld løser det mit problem her og nu, men det ville jo være nice, at have muligheden for flere niveauer i baghånden.
Avatar billede Slettet bruger
15. januar 2004 - 23:26 #18
Ja, en fejl 400 tyder på at serveren er sat op til kun at acceptere et enkelt underniveau. Det kan der ikke laves om på med et php-script. Desværre.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester