MeinWebworker
   MeinWebworker


   
Seit 1998   
 
@-Domains selbst realisieren

Wofür die Provider dieser Welt zur Kasse bitten, das kann man sich dank JavaScript auch selbst kostenlos erstellen. @-Domains zur eigenen Domain – und zwar unendlich viele. Wie es funktioniert, zeigt Ihnen dieser Workshop.

Grundlegendes zur Realisierung von @-Domains
Um @-Domains zu realisieren, müssen Sie zu allererst eine neue HTML-Seite anlegen, die beim Aufruf Ihrer Domain vor jeder anderen Seite aufgerufen wird. Diese Datei heißt im Normalfall “index.html”. Ihre eigentliche Startseite müssen Sie ggf. zum Beispiel in “index2.html” umbenennen.
Die neue “index.html”-Seite dient nun als Umleitung. Beim Aufruf Ihrer Domain wird per JavaScript überprüft, ob ein @-Paramter mit eingegeben wurde oder nicht. Im Quelltext der Startseite werden dazu folgende Zeilen eingefügt:

<script language=”javascript”>
var url = window.location.href;

if(url.charAt(url.length- 1)== ‘/’)
{ url= url.substring(0, url.length- 1); }

url = url+ ‘/’;
var slash = url.indexOf(“//”) + 2;
var zeichen = url.indexOf(“@”);

if(zeichen > 0) {
var atpart= url.substring(slash, zeichen);
window.location.href= “http://www.meine-domain/” + atpart + “/”;
}
else { window.location.href= ‘http://www.meine-domain/index2.html’; }
</script>

Im Beispiel wird die Eingabe von “forum@meine-domain.de” den Besucher nun zum Unterordner “http://www.meine-domain.de/forum/” umleiten. Falls die Domain ohne @-Bestandteil aufgerufen wurde, wird der Besucher zur Startseite (im Beispiel “index2.html”) weitergeleitet.

Erweiterte Parameter-Abfrage
Einziges Problem bei dieser Umsetzung ist, dass der Besucher auch bei Eingaben wie beispielsweise “xyz@meine-domain.de” zum entsprechenden Unterordner umgeleitet wird – auch wenn dieser gar nicht existiert. Die Folge sind unschöne Fehlermeldungen. Umgangen werden kann dies nur, wenn Sie jede mögliche @-Domain einzeln definieren. Über eine JavaScript-Abfrage mit dem Befehl “switch” können Sie beliebig viele @-Domains erzeugen:

<script language=”javascript”>
var url = window.location.href;

if(url.charAt(url.length- 1)== ‘/’)
{ url= url.substring(0, url.length- 1); }

url = url+ ‘/’;
var slash= url.indexOf(“//”) + 2;
var zeichen= url.indexOf(“@”);

if(zeichen > 0) {
var atpart= url.substring(slash, zeichen);

switch(atpart) {

case “aktuelles”:
window.location.href = “http://www.meine-domain.de/aktuelles.html”;
break;

case “seite2″:
window.location.href = “http://www.meine-domain.de/unterordnerxy/seite.html”;
break;

default:
window.location.href = “http://www.meine-domain.de/fehler.html”;
break;
}

}
else { window.location.href= ‘http://www.meine-domain/index2.html’; }
</script>

Bei dieser Abfrage wird der Besucher nur dann zu einer bestimmten Seite umgeleitet, wenn diese explizit vorher angegeben wurde. Jede @-Domain wird dabei über folgenden Quelltext erzeugt:

case “name-der-@-Domain“:
window.location.href = “Weiterleitungs-Ziel-Url“;
break;

Folgende Angabe definiert die Seite, die angezeigt werden soll, falls zwar eine @-Domain eingegeben wurde, diese aber ungültig (also nicht definiert) ist:

default:
window.location.href = “http://www.meine-domain.de/fehler.html”;
break;

Weiterführende Möglichkeiten
Statt den Besucher über den Befehl “window.location.href” zu einer anderen Seite weiterzuleiten, können Sie an den entsprechenden Stellen auch beliebige andere JavaScript-Befehle einsetzen.
Statt einem @-Zeichen könnte beispielsweise auch ein beliebiges anderes Zeichen verwendet werden. Das @-Zeichen ist allerdings zu empfehlen, da diese Domain-Art auch von großen Providern vermarktet wird und so bei Besuchern ein gewisser Bekanntheitsgrad vorrausgesetzt werden kann.
Bei der Verwendung der @-Domain-Technik sind Ihrer Fantasie keine Grenzen gesetzt.

Diese Artikel könnten Sie interessieren:
Weiterleitungen realisieren

(Gast | 11.01.03)

Diskussion zum Thema:

41 Kommentare zu “@-Domains selbst realisieren”
  • amauf 11.01.03, 17:37

    Sehr guter Artikel und ich denke auch sehr nützlich. Ich habe auch schon oft gesehen, dass die Provider innerhalb Ihrer Angebote eine begrenzte Anzahl an @-Domains erlauben. Was ja nur wieder eine Abzocke darstellt. Die Provider ermöglichen die @-Domains genau wie im Artikel mit einem einfachen JavaScript.

  • hpfans 12.01.03, 10:08

    Ich stimme Andreas absolut zu. Wirklich interessant! Aber ein wenig umständlich, da geht es über das Webinterface der Hoster bequemer. Aber ich denke mal, im Endeffekt sind die “offiziellen @-Adressen” der Hoster auch nix anderes als das, was Daniel im Workshop vorgestellt hat.

    Nochmals meine Gratulation zu diesem Beitrag!

    Jonas

  • mrflosch 13.01.03, 00:10

    Aber das Problem liegt doch auf der Hand – was ist wenn der Besucher kein Javascript aktiviert hat? Ich denke das dies bei einem nicht unerheblichen Teil der Fall ist. Und was dann? Jeder der kein Javascript hat sieht bei dieser Art der @-Domains in die Röhre, sehe ich das richtig?:-(

  • limazwo 13.01.03, 03:54

    Man kann auch mit parse_url (‘url’); die URL auslesen. Damit müsste man den gleichen Effekt mit PHP erzielen können – Wenn ich mal etwas mehr Zeit habe klemm’ ich mich mal dahinter…

    PHP hätte hier halt den Vorteil, daß man die Umleitung auf der normalen Startseite realisieren kann (also kein Referer) und daß es Serverseitig ist, also bei jedem User funktioniert.

    Hier der Link:
    http://www.php.net/manual/de/function.parse-url.php

    Grusz,
    L2

    Letzte Änderung von Malte Höltken am 13.01.03, 03:58.

  • amauf 13.01.03, 09:22

    <<Jeder der kein Javascript hat sieht bei dieser Art der @-Domains in die Röhre, sehe ich das richtig?>> Wie gesagt, benutzen die Provider die ich kenne ebenfalls JavaScript für die @Domains. Von daher macht das wenig unterschied.

  • cbs 13.01.03, 10:08

    Die serverseitige Lösung würde mich auch reizen, wäre glatt ein weiteres Tutorial wert! ;-)

  • limazwo 13.01.03, 14:15

    Na ich könnte eins schreiben, aber vor Mitte/Ende März wird nix draus, wegen den Klausuren

    Grusz,
    L2

  • magistix 13.01.03, 16:43

    Ich finde die Variante mit JavaScript interessant – die Überlegung via PHP wäre aber sicherlich eleganter und wie bereits angesprochen vielfältiger und sicherer zu verwenden.

    Würde mich freuen, diesbezüglich noch einmal etwas hier zu lesen ;-)

  • cbs 13.01.03, 17:11

    Das wirst Du mit Sicherheit…(L)

    Wenn nicht von Malte, dann von mir oder Andreas! ;D

  • korre 13.01.03, 17:37

    Neben den Nachteilen von JS hat es einen Vorteil: Diese Lösung funktioniert nun wirklich auf jedem noch so kostenlosen Provider ohne PHP-Unterstützung etc…
    Und wenn die Leute ohne JS-Aktivierung auf die @-Domains verzichten müssen, ist das ja nun auch nicht gerade ein Drama – müssen Sie halt wieder lange URLs eingeben ;-)

  • cbs 14.01.03, 09:43

    Da hat der Herr Korioth mal wieder recht! Aber wer die @-Domains professionell nutzen will, sollte schon auf eine serverseitige Lösung setzen. ;-)

  • lenzse 19.01.03, 11:20

    Wenn mir jemand so ein PHP-Beispiel schicken könnte würde ich mich mal an ein Tutorial heranwagen.
    Ich hab das aber bei php.net noch gar nicht geblickt.
    Es sollte aber ein Beispiel mit @-Domains sein.

    Schon mal vielen Dank

  • cbs 19.01.03, 11:25

    Ich gehe mal davon aus, dass es solch ein Script noch gar nicht gibt. Es sollte aber recht einfach zu realisieren sein.

    PS: Vorher solltest Du jedoch Deine Homepage von den ganzen “hässlichen” Webmart-Tools befreien! ;D

  • lenzse 19.01.03, 11:32

    Also ich hatte noch keinen bock/Zeit etwas an meiner page zu machen.
    Aber ich werde sie von Zeit zu Zeit alle ersetzen. ;D

    Wenn mir vielleicht jemand dann bitte nur die code zeilen erklähren würde, weil mein englisch is noch net so gut

  • korre 19.01.03, 12:41

    Zitat: “Wenn mir jemand so ein PHP-Beispiel schicken könnte würde ich mich mal an ein Tutorial heranwagen.”

    Scherzkeks – dann ist das Tutorial ja schon so gut wie fertig…
    ;D

  • lenzse 19.01.03, 13:04

    Hehe ich verstehe ja die Funktion Parse.url net einmal:-|
    Ich kann nähmlich noch nicht so gut englisch
    wenn mir jemand erklähren kann wie ich die URL auslese und dann verändere währe das gut

  • fred 19.01.03, 13:16

    Hi,
    da fällt mir ein, könnte man nicht auch so Subdomains erstellen mit der Zerlegung von einer Adresse per PHP?
    Wenn vor der Adresse (z.Bsp.: all4homepage.de) ein Punkt und davor ein Text ist (z.Bsp.: dein-name.all4homepages.de), müsste man dann in ein Unterverzeichnis umgeleitet werden. Damit wären die Subdomains von 1und1 total sinnlos und man könnte ewig viele machen und nicht nur zehn!
    Falls ihr dazu etwas schreiben würden, ich würde mich freuen!

  • lenzse 19.01.03, 13:39

    Nee ich glaube das geht nicht, weil wenn man irgent eine Seite mit einer undefinierten Subdomain aufruft kommt man nicht auf die Startseite wie es bei @-Domains der Fall ist:-|

  • korre 19.01.03, 13:53

    Nein, Subdomains, also alles was mit einem Punkt (“.”) abgetrennt wird, kann mit dieser Methode NICHT erzeugt werden.

    Habs gerade nochmal extra ausprobiert…

  • lenzse 19.01.03, 14:32

    kannst du mir mal das script schicken?
    Weil ich blicke die funktion net dann kann ich mir das mal ansehen auch wenn es nicht funktioniert (in dem fall nicht schlimm wein ich es weiß)
    Danke

  • amauf 19.01.03, 14:59

    Also prinzipiell kommt man schon auf die normale Startseite, wenn man eine Subdomain eingibt, die nicht existiert.
    So einfach scheint es allerdings nicht zu sein. Ich wüsste noch nicht mal, wie ich die komplette URL mit PHP rauskriege.

  • fred 19.01.03, 15:07

    Oben wurde bereits erwähnt, dass man dies mit parse_url erreichen kann. Also kann man die einzelnen Teile doch definieren (www.dein-name.all4homepages.de): All4Homepages.de und Dein-Name.
    Aber leider bin ich kein PHP-Profi! ;-)

  • amauf 19.01.03, 15:11

    Ahso, stimm. Na dann ist’s ja klar. ;D

  • lenzse 19.01.03, 15:27

    Hä ich kapier nix ich versteh die funrtion parse-url noch nicht einmal
    kann mir das mal einer erklähren???:-|

  • limazwo 19.01.03, 15:37

    Na nicht garz. mit parse_url() kann ich eine URL zerstückeln, bekomme sie aber noch nicht vom Browser. Es gibt viele vordefenierte Variablen in PHP, wo URL’s drinstehen. ein Blick in die phpinfo() hilft einem da weiter. Aber das sind nur die Adressen, wo sich das Script befindet und keine Parameter davor (also vor dem @-Trenner). Das Problem liegt also darin, daß ich nicht an das @ herankomme – mir ist dazu bisher noch nichts eingefallen. Die URL zu parsen ist kein Problem. Das steht auch sehr ausführlich in der php.net doku, ich meine auch in der FAQ von de.comp.lang.php. So weit wie ich bin, müsste ich die URL mit Javascript auslesen und dann mittels URL-codierung an ein PHP-Script schicken um sie dort zu parsen. Das wiederum ist allerdings vollkommener Schwachsinn, weil ich das ganze dann a) komplett in Javascript schreiben und b) immer noch eine Clientseitige Lösung habe. und gerade davon wollen wir ja ab. Ich muß noch mal ein bisschen rumsuchen, aber das Problem krieg ich schon noch. Nur hats hier doch keiner Allzueilig damit oder? Dann nämlich müsste ich das Tutorial abgeben (schreibe bis zum 19.03. Klausuren :-/ )

    Achja: eine phpinfo() ausgabe findet Ihr bei http://www.soeh-t.de/php_info.php
    FAQ dclp: http://www.dclp-faq.de
    Doku: http://www.php.net

    Wäre nett wenn mir jemand was schicken könnte, wenn er weiß wie ich die URL kriege. Den Rest des Tutorials ist nämlich schon fertig :-)

    Grusz,
    L2

  • hpfans 19.01.03, 15:44

    Ähm, ich habe von einer vordefinierten Variable $HTTP_ADDR gelesen, könnte es sein, dass damit die Dokumenten-URL gemeint ist? Aber ich weiß, dass es irgendwie möglich ist, die URLs eines Dokuments in einer Variablen anzuzeigen …

    Jonas

  • limazwo 19.01.03, 15:52

    Ja Die URI des Dokumentes ist kein Problem ($_SERVER["REDIRECT_URI"] beispielsweise) Aber HTTP_ADDR, so wie HTTP_ADR scheint leer zu sein. Bekomme da auf jeden Fall weder einen String noch sonstwas raus.

    Danke trotzdem
    Grusz,
    L2

  • cbs 19.01.03, 16:13

    Also ich habe bei einem “Mitbewerber” mal von einer Funktion gelesen, die angeblich die gesamte URL auslesen soll:

    $url=explode(“/”,$REQUEST_URI);
    $url[0] => http://www.domain.tld;

    Aber soweit ich das nachvollziehen kann, hat der Autor dieses Artikels wohl nicht richtig recherchiert, denn damit bekomme ich nur den Dateinamen und NICHT die Domain inkl. “http://…”! :-|

  • mg16373 04.02.03, 23:23

    So erhält man die angeforderte Seite in PHP4. Das Javascript ist natürlich nicht notwendig und wir nur für die Alert-Box verwendet.

    <html>
    <script language=”javascript”>
    protocol = ‘<?= $SERVER_PORT == 80 ? “http://” : “https://” ?>’;
    msg = protocol+’<?=$HTTP_HOST.$REQUEST_URI?>’;
    alert(msg);
    </script>
    </html>

    ;-)

  • limazwo 05.02.03, 01:54

    Na Toll. Die URL kenne ich doch, ich bin auf der Suche nach den Parametern, die in einer Adresse angegeben werden… Also alles nach dem Motto foo@soeh-t.de” target=”_blank”>http://foo@soeh-t.de (Dein Script steht momentan auf soeh-t.de/index.php) Nur leider hilft es mir in keinster weise weiter…..

    Aber ich habe mal de.comp.lang.php.misc gefragt und dort ist man einhelliger meinung, diesen Part der URL nicht mittels PHP auslesen zu können… Es scheint, als ob ich an die erste unüberwindbare Grenze von PHP gestossen wäre…

    Grusz,
    L2

  • fred 05.02.03, 09:46

    Eigentlich schade,

    sowas hätte ich gebraucht :-(
    Wieso Dienste überhaupt @-Domains anbieten, kapier ich nicht, da viele JavaScript nicht an haben. Mit PHP wäre eine optimale Lösung zustande gekommen. Müsste doch aber gehn, oder?

    Naja,
    Friedrich

  • fred 09.02.03, 11:44

    http://www.selfphp.info/funktionsreferenz/url_funktionen/parse_url.php

    da steht im Beispiel auch was vor dem @. Könnte das was werden?

  • amauf 09.02.03, 13:13

    Ja, wunderbar. Wir missbrauchen einfach den User als @-Domain! :-)

  • fred 09.02.03, 13:51

    Aber funktionieren müsste es doch, oder? Wieso darf man nicht den User dazu benutzen? Merkt doch keiner :-)

    Fred

  • limazwo 09.02.03, 14:06

    Im Endeffekt kommts auf das selbe raus. Du kannst nur nicht einfach wild URLs parsen, die Du nicht kennst.

    Grusz,
    L2

  • mehlior 27.04.03, 14:59

    Ich will euch ja die Illusion nicht zerstören, jedoch zweifel ich ernsthaft an, dass es eine PHP-Lösung gibt:
    1) Man bekommt bei solchen Aufrufen wie xxxx@fffcc44.de durch den Browser den Verweis auf die Startseite (also fffcc44.de) und
    2) das PHP-Script hat in allen Url-Variablen dann nur “” bzw. “http://www.fffcc44.de” stehen, da der Browser diese Seite aufruft
    3) da wir nicht wissen, welche @-Domain der User aufruft, kann keine PHP-Lösung existieren
    4) dadurch können wir auch keine Url per parse_url zerlegen
    5) Ich habe bisher noch keinen Anbieter gesehen, der eine Server-seitige Lösung hat. (Bei allen wurde nur die Startdatei umbenannt und eine neue Datei mit dem JS zwischengeschaltet)
    Sollte ich mich allerdings täuschen, lasse ich mich gerne belehren ;D

    Letzte Änderung von Christian Mehler am 27.04.03, 15:00.

  • tommy75 27.04.03, 15:30

    Die Angabe vor dem @ ist ja nichts anderes als der Benutzername. Ist eine Adresse passwortgeschützt, so kann ich diese mittels “user:pass@domain” aufrufen.
    Der Browser ruft in so einem Fall die URL hinter dem @ auf und sendet im Header die “Authorization”-Zeile mit der Angabe user:pass (Base64-kodiert). In PHP gibt es sicherlich eine Umgebungsvariable, die den Username enthält. Und wenn dem so ist -> Bingo! ;)

  • mehlior 27.04.03, 17:02

    Das Problem besteht darin, dass schon der Browser deine angeführte Variante eines ftp-Zugriffes entsprechend umcodiert. Selbst der Sever bekommt dabei nie eine Anforderung der Form “user:pass@domain”, sondern z.B. im Falle von ftp wird ein Zugriff auf den ftp-Server hergestellt und dannn (vom Brwoser zerpflückt) hintereinander Username und PW gesendet. Zudem habe ich vorhin mir alle bekannten Zugriffsvariablen auf den Dateinamen ausprobiert, und überall war das @ und der Benutzername weg (vielleicht gibt es aber noch eine Unbekannte? Weiß die jemand?).

  • tommy75 27.04.03, 17:11

    @Christian: das hat mit FTP nichts zu tun! Das ist eine ganz normale URL für das HTTP-Protokoll. Und so wie der Name der Clientsoftware in $HTTP_USER_AGENT zu finden ist, gibts mit Sicherheit eine Variable für den Benutzernamen. Ich glaube $REMOTE_USER oder ähnlich. Habe aber im Moment leider keine Zeit für Experimente …

  • mehlior 27.04.03, 17:23

    @Thomas, dann beziehst du dich gerade auf die HTTP_AUTHENTIFIZIERUNG? Das wäre dann $_SERVER["REMOTE_USER"]. Aber selbst dort wird es vom Browser zerpflückt (soweit wie ich weiß), und es geht hierbei ja schließlich nicht darum eine neuen Aufruf von geschützten Verzeichnissen (per htaccess) zu schreiben, sondern die “schnöden” @-Domains mit PHP zu realisieren.
    *Habs übrigens ausprobiert: Habe selbst bei solchen Aufrufen keinen Inhalt in Remote_User gehabt…*

  • tommy75 27.04.03, 19:18

    Wenn überhaupt, dann geht es nur über eine Aufforderung zur Authentifizierung mittels .htaccess oder durch Senden des Statuscodes “401 Unauthorized” unter Verwendung der header()-Funktion. Der Browser antwortet erst dann mit dem Teil vor dem “@” (was ja nichts anderes als der Benutzername ist).
    Soweit so gut … das wäre kein Problem, da technisch leicht machbar.
    Aber an einer Sache scheitert das dann doch : beim Aufruf der URL ohne “@”-Bestandteil möchte der Browser natürlich auch Benutzername/Passwort haben und öffnet das altbekannte Dialogfenster … naja und wer will das schon in diesem Fall angezeigt haben :-8


 
 
Shopping
Preisvergleich!
Vergleichen Sie jetzt die Preise vieler Produkte und sparen Sie durch den Einkauf im Preisvergleich bei namhaften Händlern. Mehr
       
 
Geschichte
Launch 1998
Christian Boris Schmidt startet als damals 16-Jähriger eine Website bei Geocities mit 5 MB Webspace, um Andere bei der Gestaltung eigener Websites zu unterstützen. Mit Hilfe des Weiterleitungsdienst home.pages.de wird die Seite auch erreichbar unter all.4.home.pages.de.

Eigene Domain 2000
Die Website ist erstmals unter all4homepages.de beim Webhoster Puretec (heute 1&1) erreichbar. Zuvor war die Reservierung einer eigenen Domain für den Schüler kaum bezahlbar.

Relaunch 2001
all4homepages.de bekommt nach mehreren Relaunchs das heutige Gesicht als Magazin. Blau wird zur Hausfarbe. Es folgen regelmäßige Newsberichte.

Homepage-Tools 2002
Andreas Mauf unterstützt ab sofort den Technik-Bereich. Nach einem Hosterwechsel werden für Mitglieder die ersten Homepage-Tools angeboten. Diese sind besonders beliebt, weil sie kostenlos und werbefrei sind. Es folgen die wöchentliche Kolumne und Gewinnaktionen für Mitglieder in Kooperation u.a. mit Canon und diversen Webhostern. Ende 2002 wird der erste, eigene Webserver in Betrieb genommen.

Neuer Name 2003
Zum 5. Geburtstag wurde MeinWebworker als neuer Name bekannt gegeben. Zu diesem Zeitpunkt nutzen mehr als 4.000 Mitglieder aktiv unsere Dienste. Nach dem erfolgreichen Abschluss einer IT-Ausbildung Mitte 2003 kann das Team die Arbeit am Projekt aus finanziellen Gründen nur noch teilweise fortgesetzen.

Übergangsphase 2004
Christian arbeitete seit dem Abschluss zunächst bei Zanox und Andreas machte sich mit der Idee zu Ecato als Einzelunternehmer selbstständig.

Ecato-Gründung 2005
Im Mai gründen Andreas und Christian mit Investoren Ecato, um Websitebetreiber beim Geld verdienen zu unterstützen. Kurz später müssen die Homepage-Tools von MeinWebworker leider aus organisatorischen Gründen eingestellt werden. Seit Ende 2005 können Websitebetreiber bei Ecato kostenlos in wenigen Schritten einen eigenen Marktplatz mit Preisvergleich einrichten und damit verdienen.

Hier geht es weiter

   
Anzeige
Shopping



 
     

Ecato
Das Marktplatz-Netzwerk

© 1998-2010 MeinWebworker. Alle Rechte vorbehalten.
Ein Projekt von Christian Boris Schmidt und Andreas Mauf.
Eine Verwendung der Inhalte in anderen Publikationen, auch auszugsweise,
ist ohne ausdrückliche Zustimmung des Autors nicht gestattet. Impressum


againstchildporn.org - Zusammen gegen Kinderpornographie und Kindermissbrauch im Internet und weltweit!
Kinder sind die Zukunft!