Seite 1 von 2
contenido mandant auf mehreren domains?
Verfasst: Fr 20. Jan 2006, 15:19
von phatbyte
hallo community
besteht die möglichkeit einen contenidomandant auf mehreren domains laufen zu lassen?
wenn ich jetzt contenido auf domain1 konfigurier und von domain2 darauf zugreife werden immer noch die urls von domain1 angezeigt - kann man das irgendwie regeln?
danke!
Re: contenido mandant auf mehreren domains?
Verfasst: Fr 20. Jan 2006, 15:21
von Dodger77
phatbyte hat geschrieben:besteht die möglichkeit einen contenidomandant auf mehreren domains laufen zu lassen?
wenn ich jetzt contenido auf domain1 konfigurier und von domain2 darauf zugreife werden immer noch die urls von domain1 angezeigt - kann man das irgendwie regeln?
Contenido setzt automatisch einen BASE-Tag, der den Einstellungen beim Mandanten entspricht. Soweit ich das in den Snapshots gesehen habe, wird das aber in der nächsten Version einstellbar sein, ob der BASE-Tag gesetzt werden soll.
Verfasst: Fr 20. Jan 2006, 15:23
von moltimer
Hallo phatbyte,
ich habe sowas nur mit Redirections bzw. Redirections in Frames hinbekommen. Also quasi nur verschleiert.
Gruß Moltimer
Verfasst: Fr 20. Jan 2006, 15:27
von phatbyte
ui das ist schlecht gibts denn keine anderen workarounds? könnte man sowas mit apache rewriten?
Verfasst: Fr 20. Jan 2006, 15:34
von stese
ansatzweise könnte so ausschauen:
du definierst in den mandanteneinstellungen alternativ urls ...
danach musst du einen hack in der front_content.php setzen, und zwar dort wo der base tag gesetzt wird. dort schaust du nämlich nach wie der aktuelle HTTP_HOST lautet, über den diese domain erreicht wurde. danach suchst du in den cfgClient einstellungen nach den alternativ-namen und ob er vorkommt. wenn ja, dann soll er bitte diesen servernamen nehmen statt dem basis mandantenpfad.
habe kein script oder sowas da, aber das wäre die vorgehensweise.
Verfasst: Fr 20. Jan 2006, 15:35
von phatbyte
oh sehr cool vielen dank!
Verfasst: Fr 20. Jan 2006, 15:37
von Dodger77
phatbyte hat geschrieben:ui das ist schlecht gibts denn keine anderen workarounds? könnte man sowas mit apache rewriten?
Probier mal aus in der "front_content.php" die Zeile 752 auszukommentieren, also statt:
Code: Alles auswählen
$code = str_ireplace_once("<head>", "<head>\n".$baseCode, $code);
so:
Code: Alles auswählen
//$code = str_ireplace_once("<head>", "<head>\n".$baseCode, $code);
Das funktioniert aber nur, wenn du nicht Module/Erweiterungen benutzt, die auf den BASE-Tag angewiesen sind.
Verfasst: Fr 20. Jan 2006, 15:43
von phatbyte
sieht so aus als obs klappt!
vielen dank!
Verfasst: Fr 20. Jan 2006, 23:56
von stese
so, ich habe das ganze mal so umgesetzt, dass man das auch verwenden kann, wenn man mehere domains drauf verweisen hat UND den base tag benötigt (z.b. wenn man meine mod rewrite erweiterung nutzt)
front_content.php öffnen, suche der stelle (zeile 746):
Code: Alles auswählen
$is_XHTML = getEffectiveSetting('generator', 'xhtml', false);
if ($is_XHTML == true) {
$baseCode = '<base href="'.$cfgClient[$client]["path"]["htmlpath"].'" />';
} else {
$baseCode = '<base href="'.$cfgClient[$client]["path"]["htmlpath"].'">';
}
$code = str_ireplace_once("<head>", "<head>\n".$baseCode, $code);
und ersetzen durch dieses snippet:
Code: Alles auswählen
// edit by stese - ModRewrite multi domain hack
// resolves additional frontend_paths and check if
// current host is defined as additional frontendpath
// if true, use new frontendpath for base tag
// if false, use default client html path for base tag
$str_new_htmlpath = $cfgClient[$client]["path"]["htmlpath"];
cInclude('classes', 'contenido/class.client.php');
$oClient = new cApiClient($client);
$arr_settings = $oClient->getProperties();
foreach ($arr_settings as $arr_client) {
if ( $arr_client["type"] == "client" && strstr($arr_client["name"],"frontend_path") !== false ) {
$arr_urlsettings = parse_url($arr_client["value"]);
if ($arr_urlsettings["host"] == $_SERVER['HTTP_HOST'] || ("www." . $arr_urlsettings["host"] ) == $_SERVER['HTTP_HOST'] || $arr_urlsettings["host"] == "www." . $_SERVER['HTTP_HOST'] ) {
$str_new_htmlpath = $arr_client["value"];
}
}
}
$is_XHTML = getEffectiveSetting('generator', 'xhtml', false);
if ($is_XHTML == true) {
$baseCode = '<base href="'.$str_new_htmlpath.'" />';
} else {
$baseCode = '<base href="'.$str_new_htmlpath.'">';
}
$code = str_ireplace_once("<head>", "<head>\n".$baseCode, $code);
// end edit
danach kann man in den mandanten einstellungen die verschiedenen domain-frontend-html paths wie folgt setzen:
type: client
name: frontend_path[n]
(also die [n] ist numerisch und kann ab 1 hochgezählt werden, wenn man 5 verschiedene domains hat kann man die namen z.b. frontend_path1, frontend_path3, frontend_path7 etc. nutzen)
value: http://www.domain.de/cms/
(also das was in den base tag geschrieben wird, also im klartext: zusätzliche urls die in den mandanten eigenschaften im feld "Web-Addresse" gesetzt werden können. wichtig hierbei: immer mit dem mandantenverzeichnis setzen!)
Verfasst: Di 1. Jan 2008, 18:38
von conradius
dieser Thread ist zwar schon etwas angestaubt, ich hatte aber trotzdem damit zu tun.
Ich verwende die 4.6.23mr_v0.3 und habe 3 verschiedene Domains für einen Mandanten.
Ich finde Dein Vorschlag super stese, ich habe ihn aber verkürzt eingebaut. Und zwar nach der Zeile
Code: Alles auswählen
$str_base_uri = $cfgClient[$client]["path"]["htmlpath"];
nur diesen Block hinzugefügt:
Code: Alles auswählen
// edit by stese - ModRewrite multi domain hack
// resolves additional frontend_paths and check if
// current host is defined as additional frontendpath
// if true, use new frontendpath for base tag
// if false, use default client html path for base tag
//$str_base_uri = $cfgClient[$client]["path"]["htmlpath"];
cInclude('classes', 'contenido/class.client.php');
$oClient = new cApiClient($client);
$arr_settings = $oClient->getProperties();
foreach ($arr_settings as $arr_client) {
if ( $arr_client["type"] == "client" && strstr($arr_client["name"],"frontend_path") !== false ) {
$arr_urlsettings = parse_url($arr_client["value"]);
if ($arr_urlsettings["host"] == $_SERVER['HTTP_HOST'] || ("www." . $arr_urlsettings["host"] ) == $_SERVER['HTTP_HOST'] || $arr_urlsettings["host"] == "www." . $_SERVER['HTTP_HOST'] ) {
$str_base_uri = $arr_client["value"];
}
}
}
// end edit
Der Vorteil davon ist, dass man nichts ersetzen, sondern nur hinzufügen muss... naja.

(hab einfach den Variabel-Name "str_new_htmlpath" bei "str_base_uri" belassen, wie in der original front_content.php.)
Dies wie gesagt bei einer 4.6.23er mit mr v0.3.
Gibt es eventuell schon andere Lösungsansätze, die schon drin sind, ich aber nur noch nichts davon weiss??
However, so klappt's super.
Gruss
Conradius
Verfasst: Di 20. Mai 2008, 23:59
von Hammy
Hallo,
ich benutze auch 4.6.23mr_v0.3, doch auch nach dem Einfügen der Zeilen bekomme ich immer nur Error 404 - Not found.
Ich habe in den Mandanteneinstellungen folgendes:
client frontend_path1
http://www.domain2.de/cms/
client frontend_path2
http://www.domains1.de/cms/
Habt ihr eine Idee, woran es liegen könnte?
Ich habe übrigens den Weg von Conradius befolgt.
Verfasst: Mi 21. Mai 2008, 08:30
von conradius
hey Hammy,
probiers mal aus ohne "cms/", also:
Code: Alles auswählen
client frontend_path1 http://www.domain2.de/
client frontend_path2 http://www.domains1.de/
schliesslich hast Du ja mr aktiviert und schreibst wohl das "cms/" nicht in Deiner url.
Gruss
Conradius
Verfasst: Di 27. Mai 2008, 07:10
von baumpaul
Hallo,
bei Version 4.6.15 funktioniert es, aber in der Version 4.6.23 leider nicht. Endweder ich habe etwas übersehen oder dort ist etwas anders. Kann sich das jemand anders noch einmal anschauen?
Verfasst: Mi 28. Mai 2008, 10:24
von conradius
hallo baumpaul,
ich habe eine Installation mit 4.6.23 am Laufen, inkl. mehrer Domains. Das funktioniert!
Hast Du noch mehr Infos zu Deinem Problem?
Gruss
Conradius
Verfasst: Di 16. Sep 2008, 18:12
von BagHira
conradius hat geschrieben:ich habe eine Installation mit 4.6.23 am Laufen, inkl. mehrer Domains. Das funktioniert!
Hallo,
funktioniert das snippet auch in einer 4.8.8, hat das schon einer am laufen?
Späte Rückmeldung, aber es funktioniert (getestet
http://forum.contenido.org/viewtopic.ph ... 543#111543) mit einer 4.8.8 ohne Probleme.