2010-10-02 8 views
6

Ich bin kein sehr erfahrener Programmierer und benutze CodeIgniter zum zweiten Mal.Codeigniter, Domäne zu einem bestimmten Bereich der Website

Angenommen, ich habe www.domain1.com. Also ich werde sagen, 3 Controller/Area1,/Area2,/Area3. Benutzer können auf sie als www.domain1.com/area1 usw. zugreifen, wenn ich die Basis-URL als www.domain1.com einstelle. Aber mein Problem ist, dass der Kunde einen bestimmten Bereich des Internets, z. B. Area2, als Microsite in seiner eigenen Domain verwenden möchte, sodass er mit www.domain2.com auf Area2 zugreifen möchte.

Ich weiß nicht, wie man das mit CodeIgniter funktioniert. Angenommen, er registriert www.domain2.com und setzt es auf den gleichen DNS, Server usw. Wie kann ich CodeIgnitor dazu bringen, den Controller-Bereich2 auszuführen, wenn auf die URL www.domain2.com zugegriffen wird?

Vielleicht ändern $config['base-url']? Routing? .htaccess? Bitte, wenn Sie dies gelöst haben, würden Beispiele von Code sehr geschätzt werden.

Edit: Ich werde Beispiel der Website, die ich bekommen möchte.

Ich habe eine normale Installation von CodeIgniter (externe Host, ich httpd.conf nicht zugreifen kann) Es ist auf einer Maschine, und die Wurzel der Website sollte durch www.domain1.com

Alle Domain abgerufen werden sollen außerhalb registriert zu. Ich habe also den Home-Controller, der mir die Hauptseite anzeigt. Angenommen, die Site verfügt über 3 Bereiche/Bereich1,/Bereich2/Bereich3 mit ihren entsprechenden Controllern, die diese Bereichsansichten anzeigen.

wollen Mein Kunde einen der Bereiche betonen, die eine, die Controller/area2 zeigt, und er will für diesen Bereich eine andere Domain verwenden, www.domain2.com

Was kann ich tun, damit, wenn die Benutzer zu www.domain2.com navigieren, CI leitet sie zu www.domain1.com/area2? Könnte ich zum Beispiel $config['base_url'] entsprechend der empfangenen URL ändern, oder ist das unmöglich? Muss ich die Datei .htaccess ändern?

+0

Wenn ich richtig bin, ist der Controller für den Bereich2 auf der gleichen Domäne wie alle anderen Controller? – ITroubs

+0

alle Controller alle auf dem gleichen Ordner auf dem gleichen Hosting, nur eine physikalische Maschine, ein Hosting) –

+0

ich will nur in der Lage sein,/Bereich2 controler Ergebnis Zugriff mit einem anderen Domänennamen, die ich Zugriff auf die codeigniter root. –

Antwort

7

Nach viel Sucherei zu gehen, habe ich eine Lösung gefunden, die, sehr einfach, ehrlich zu sein scheint zu funktionieren:

Ändern routes.php:

if ($_SERVER['HTTP_HOST']=="www.domain2.com") { 
    $route['default_controller'] = "area2"; 
} 

Keine Notwendigkeit zum Mod Neuschreiben.

+0

Stud Ich mag dieses, müssen Sie auch sicherstellen, dass domain1.com kann nicht zugreifen Bereich2, z. add: if ($ _ SERVER ['HTTP_HOST'] == "www.domain1.com") {$ route ['area2'] = "diff_controller";} –

+0

Sie sollten eine Antwort auf Ihre Fragen akzeptieren, indem Sie auf das Grün klicken Häkchen neben jeder Antwort - dies markiert die Frage als gelöst und gibt dem Fragesteller und dem Antworter eine kleine Belohnung für ihre Probleme. In diesem Fall sollten Sie diese Antwort akzeptieren, da Sie Ihr eigenes Problem gelöst haben. –

+0

Dies ist die beste Lösung und etwas, das ich gerade auch benutze. – Ash

0

Hier ist ein hilfreicher Link .... http://www.askaboutphp.com/88/codeigniter-setting-up-multiple-sites-on-one-install.html nie wirklich die selbst getan, aber dies scheint der Weg zu sein, darüber zu gehen, ohne dass zwei ci installiert. Viel Glück.

+0

Cheked die Seite ... –

+0

Dies ist nicht wirklich mein Fall, also ich nicht verschiedene Anwendungen haben möchte, wie er es tut. Ich möchte nur einen Teil meiner einzigen Anwendung (es ist sowieso ein Teil des gesamten Webs) mit einer anderen Domäne zugreifen. Überprüfen Sie das Beispiel auf meiner Bearbeitung. –

-1

Die erste Lösung, die mir in den Sinn kommt, ist die Verwendung von Apache mod_rewrite, aber soweit ich weiß, würde das nur für interne Weiterleitungen funktionieren (d. H. Ressourcen auf demselben Server/Domäne).

Wie wäre es mit einem iframe? Sie können die Startseite von domain2.com mit einem ganzseitigen iframe einrichten, der den Inhalt von domain1.com/area2 abruft.

+0

Ich werde versuchen, mod_rewrite Möglichkeiten dann zu testen. Die iFrame-Idee ist auch eine gute Idee, ich werde es auch versuchen. –

0

Sie auf jeden Fall brauchen die mod_rewrite Weg

+0

Ich werde versuchen, mod_rewrite Möglichkeiten dann –

Verwandte Themen