Seite 3 von 3

Verfasst: 26.11.2006 16:24
von Miriam
Jensemann,

das interessiert mich jetzt aber. :grin:

Gib' mal bitte ein konkretes Beispiel. Ich meine eins, dass auch den hier gefordereten Ansprüchen genügt. 8)

Verfasst: 26.11.2006 16:45
von Jensemann
Also schön, nochmal in ganz langsam (ist nicht ganz so böse gemeint wie es sich vielleicht anhört ;-) ):

In deinem Code verwendest du die HTTP_HOST-Variable um den Prefix für die Board-Tabelle zu generieren. Das funktioniert aber nur unter einer Bedingung:

Jedes Board hat exakt eine Domain, also auch keine Subdomains oder ähnl. Ich habe dazu eben eine kleine PHP-Datei gebastelt auf einer Domain die mit und ohne www. erreichbar ist:

http://www.info.cat.cat-proof.de/test.php
http://info.cat.cat-proof.de/test.php

Wäre dort jetzt ein Board installiert das seinen Prefix nach deinem Verfahren auswählt, würde es nur mit einer der 2 Domains funktionieren.
Die Lösung aus diesem Problem ist es, nicht die HTTP_HOST-Variable zu nutzen, sondern die Variable SERVER_NAME, oder über eine gesonderte SQL-Abfrage zu gehen.

Und jetzt das nochmal in Haarklein:
Du kennst sicher VirtualHosts im Apache-Webserver, vermutlich nutzt du sie auch selber um deinen Code von Seite 1 zu testen. Du hast dabei immer 2 Zeilen um die Domains anzugeben die für diesen VirtualHost gelten: ServerName und ServerAlias. Vorrausgesetzt das UseCanonicalName On ist, wird die Variable SERVER_NAME immer die Domain aus ServerName beinhalten, ganz egal unter welcher Domain wir diesen VirtualHost/diese Webseite aufrufen => Es ist also besser diese Variable zu verwenden, denn so ist das ganze Multidomain Save.

Wenn für die verschiedenen Boards nun keine seperaten VirtualHosts benutzt werden sollen, UseCanonicalName Off ist oder schlichtweg kein Apache-Webserver benutzt wird, dann bietet sich Methode 2 an:

Wir nutzen zwar die HTTP_HOST-Variable, machen daraus aber nicht direkt den Prefix, sondern Fragen erstmal eine Datenbank-Tabelle die wie folgt aussehen könnte:

domain | prefix
----------------------
info.cat.cat-proof.de | info_cat_cat_proof_de
www.info.cat.cat-proof.de | info_cat_cat_proof_de

Alles klar?

Verfasst: 26.11.2006 19:03
von Miriam
jensemann hat geschrieben:Jedes Board hat exakt eine Domain, also auch keine Subdomains oder ähnl. Ich habe dazu eben eine kleine PHP-Datei gebastelt auf einer Domain die mit und ohne www. erreichbar ist:
Jetzt habe ich verstanden, was Du meinst *vor den Kopf hau*.
Aber ich dachte, es geht genau darum, die 3rd level Domain als "Schalter" zu benutzen, weil alles auf einer Domäne liegt und die Foren entsprechend zugeordnet werden können.
also:
forum1.dom.de
forum2.dom.de
forum3.dom.de.

Aber das ist, glaube ich, auch eine Frage der individuellen Konfiguration des Servers (sonst gäbe es hier nicht so viele Supportanfragen :) ).
Meine Tests:
//EDit: Tests gelöscht

Was man doch alles für Spielchen machen kann. :D

Verfasst: 26.11.2006 19:09
von Jensemann
Miriam hat geschrieben: Aber das ist, glaube ich, auch eine Frage der individuellen Konfiguration des Servers (sonst gäbe es hier nicht so viele Supportanfragen :) ).
Ja, das Spielchen ist sehr Server-Konfigurationsabhängig. Wie ich eben schon schrieb, ohne UseCanonicalName On verhält sich SERVER_NAME wie HTTP_HOST.

Die Subdomain als Schalter zu benutzen geht natürlich, wird aber spätestens dann zum Problem wenn Browser standardmäsig ein "www." davor setzen wenn keins da ist. Robuster ist es eben, davon auszugehen das eine Subdomain mit und ohne "www." aufgerufen wird (gilt im Prinzip für jede andere Domain auch).

Verfasst: 26.11.2006 19:19
von michaelsalzburg
bei phpbb gibt es bei dieser methode jedoch ein problem: sobald eine datei aus einem unterordner des servers aufgerufen wird, oder eine nicht absolute URL aufgerufen wird, setzt sich die domain wieder zurück auf die mit www.

z.b. die subdomain http://test.domain.at leitet alle anfragen auf das unterverzeichnis /phpbb/ am server http://www.domain.at weiter.
wird dann eine datei aus einem unterordner aufgerufen oder ist in einem link kein absoluter pfad angegeben, so verwendet der IE wieder die url http://www.domain.at/phpbb/blablabla

gibt es eine möglichkeit, damit in der adresszeile immer die subdomain angezeigt wird?

Verfasst: 26.11.2006 19:42
von Miriam
michaelsalzburg hat geschrieben:wird dann eine datei aus einem unterordner aufgerufen oder ist in einem link kein absoluter pfad angegeben, so verwendet der IE wieder die url http://www.domain.at/phpbb/blablabla
Wow, kann man das auch irgendwo bestaunen?

Verfasst: 26.11.2006 19:48
von michaelsalzburg
aber natürlich: http://test.forenworld.at
ein klick auf login, und spätestens nach der eingabe von benutzername und passwort und nachfolgendem klicken auf die bestätigungsschaltfläche ändert sích die url wieder auf http://www.forenworld.at/phpbb/ und damit ist auch das präfix im eimer!

Verfasst: 26.11.2006 19:54
von Jensemann
Das kommt davon wenn du nicht machst was Miriam dir sagt ;-) Du musst auch die Domain in der *_config Tabelle anpassen.

Verfasst: 26.11.2006 20:06
von Miriam
So isses.... :lol: :lol:

Verfasst: 26.11.2006 20:06
von michaelsalzburg
aja, das hab ich vergessen! dankeschön!
jetzt funktionierts...