{{indexmenu_n>400}} ====== phpwcms mit mehreren Domains ====== Aus [[http://www.joergalbrecht.de/blog/?tag=phpwcms|Jörg Alblecht Blog]]: "Das Content-Management-System phpwcms bringt von Hause aus keine Funktion für mehrere Domains mit. Wenn man das System auf einem Webspace-Paket installiert, welches mit mehreren Domains konnektiert ist, wird also standardmäßig unter jeder Domain der gleiche Inhalt angezeigt. Wenn eine Internetpräsenz über verschiedene Länder- und Sprachversionen verfügt, kann es jedoch wünschenswert sein, dass jede einzelne Domain direkt mit einer spezifischen Einstiegsseite beginnt. Dazu ist lediglich der folgende kleine Workaround nötig. 1. Zunächst muss eine Datei angelegt werden, welche die verschiedenen Domains mit unterschiedlichen Inhaltsseiten verknüft. Ich nenne diese meist redirect.php. \\ 2. In diese Datei kommt folgender Code, welcher angepasst werden muss und um beliebig viele Domains ergänzt werden kann." \\ \\ 3. Damit die Datei "redirect.php" vor der "index.php" ausgeführt wird, muss in der ".htaccess" noch folgende Zeit hinzugefügt werden: DirectoryIndex redirect.php index.php \\ Das war es dann schon! \\ Zitat vom Mittwoch, 05.03.2008 aus: [[http://www.joergalbrecht.de/blog/?tag=phpwcms|Jörg Alblecht Blog]] \\ --- //[[flip-flop@myrealbox.com|Knut Heermann (flip-flop)]] 2011/03/13 08:57// ====== phpwcms-Portal mit mehreren Domains [Website-in Website) ====== **__DIE IDEE:__**\\ Mit Hilfe von ein paar logischen Zusammenhängen, wird schnell klar, dass es möglich sein muss, mit Hilfe einer weiteren TLD \\ oder Subdomain bestimmte Teile der Website anzusteuern, ohne dafür ein komplettes neues System zu installieren.\\ Dass man diese Art der "Website in der Website" auch für mobile Nutzungen gebrauchen kann ist nicht sofort ersichtlich, \\ ergibt sich aber recht simpel aus folgender Überlegung: * Auf mobilen Geräten ist trotz der Flatrates der Datentransfer ein Nadelöhr, also ist weniger mehr!\\ * Wir brauchen z.Bsp. nur folgende Infos: -Impressum/ -eMail/ -Telefonnummer/ -Standortbeschreibung/ -Öffnungszeiten/ -Kurzangebote-Leistungen\\ 8-) Das war's schon. Und wenn man dafür nur ein "**mobiles Layout**" als Vorlage anlegt und in die entsprechenden Rubriken/ Menüpunkte \\ mit {SHOW_CONTENT Artikel aus dem Desktopbereich} hantiert, hat man neben seiner Desktopausführung schnell eine mobile Seite mit \\ einer einzigen Datenbank zusammen und funktionstüchtig. Es ist weniger Arbeit, als alles noch einmal mit einem separaten CMS zu erstellen.\\ Grundsätzlich sind alle normalen Server/ Hoster so konfiguriert, dass man mit einer TLD nur einen Ordner im Webspace ansteuern kann und \\ keine Sripte. Mit Hilfe der LEVEL-ID kann man eine Website wie folgt strukturieren\\ HOME----------(0) ---WEB1-----------(1) Bereich1----(2) bereich2----(2) bereich3----(2) ---Web2 -----------(1) Bereich4----(2) bereich5----(2) bereich6----(2) u.s.w. Mit der TLD soll nun WEB1 oder WEB2 angesteuert werden, welche auch einen entsprechenden alias-Namen haben.\\ WEB1 und WEB2 werden/ können unterschiedliche Layouts und HTML-Vorlagen zugeordnet. Dadurch sieht WEB1 u.U. \\ vöiig anders aus als WEB2.\\ **__Der Lösungsansatz:__**\\ Voraussetzung für eine solche Lösung ist unbedingtes Einhalten einer LEVEL-ID-Struktur.\\ Ebenfalls braucht man eine Menüführung, die nur in diesem Level funktioniert und keine höheren Level ansteuert! \\ Ich habe dafür eine horizontale Menüführung modifiziert: In der Vorlage wurde folgendes Installiert: Die ID XXX ist der Beginn von einem ausgewählten Webbereich für eine bestimmte TLD. \\ Ebenso werden die anderen Menüs verwendet. Bis zu einer relativen Tiefe 3 werden die Menüs entsprechend angezeigt. ===== Ansteuerung durch TLD auf alias ===== Die gesamte phpWCMS-Konstruktion beginnt IMMER bei HOME (Level 0). Genau hier muss spätestens die Entscheidung fallen, \\ welche TLD wurde aufgerufen, wohin soll die Reise gehen? Dafür habe ich ein kleines Script zusammengeschrieben, dass man in einen HTML-CP unter HOME ablegt, welches diese Fragen beantwortet: [ PHP ] $DomainName = strtolower($_SERVER['HTTP_HOST']); // www. in Domainname nicht enthalten? if (strpos($DomainName,'www.') === false) { $DomainName = "www.".$DomainName; } switch($DomainName) { case 'www.MeineTLD1.de': header( "HTTP/1.1 301 Moved Permanently" ); headerRedirect('/aliasTLD1.html'); break; case 'www.lMeineTLD2.de': header( "HTTP/1.1 301 Moved Permanently" ); headerRedirect('/aliasTLD2.phtml'); break; default: ..... } [ /PHP ] Das geht natürlich auch mit obiger IF-Schleife - bei weniger Domainabfragen. In meinem Projekt werden aber z.Zt 15 TLD \\ abgefragt, so dass die Übersicht mir CASE besser ist. Wer es sicherer(?) haben will, macht mit ein paar Ergänzungen ein \\ "echtes" PHP-Script daraus und legt es unter:\\ \\ **//\template\inc_script\frontend_render//** \\ \\ ab. **__Wichtig:__** Suchmaschinen machen keine Zicken bei der gezielten Weiterleitung! {{:deutsch:andere-erweiterungen:frontend:portal.jpg|}} Aus [[http://spielwiese.strausberg-nord.de/portalaufbau.html|"kukkis Spielwiese"]]: