2010-10-02 6 views
6

No soy un programador con mucha experiencia y estoy usando CodeIgniter por segunda vez.Codeigniter, dominio de un área determinada del sitio

Supongamos que tengo www.domain1.com. Entonces tendré, digamos 3 controladores/area1,/area2,/area3. Los usuarios pueden acceder a ellos como www.domain1.com/area1, etc. si configuro la URL base como www.domain1.com. Pero mi problema es que el cliente quiere un área determinada de la web, digamos area2, trabajando como un micrositio, en su propio dominio, por lo que quiere acceder a area2 con www.domain2.com.

No sé cómo hacerlo funcionar con CodeIgniter. Supongamos que registra www.domain2.com y lo establece apuntando al mismo DNS, servidor, etc. ¿Cómo puedo hacer que CodeIgnitor ejecute el área de controlador2 cuando se accede a la URL www.domain2.com?

¿Tal vez cambiar $config['base-url']? Enrutamiento? .htaccess? Por favor, si ha resuelto esto, los ejemplos de código involucrados serían muy apreciados.

Editar: pondré un ejemplo del sitio que quiero obtener.

tengo una instalación normal de CodeIgniter (host externo, no puede acceder a httpd.conf) Es en una máquina, y la raíz del sitio debe ser accedida por www.domain1.com

Todos son de dominio fuera registrado a. Así que tengo el controlador del hogar, que me muestra la vista principal de la página. Y supongamos que el sitio tiene 3 áreas/área1,/área2/área3, con sus controladores correspondientes, mostrando las vistas de estas áreas.

Mi cliente desea hacer hincapié en una de las zonas, el que el controlador/área2 muestra, y que quieren utilizar un dominio diferente para esa zona, www.domain2.com

¿Qué puedo hacer yo para que cuando el usuario navega a www.domain2.com, CI los redirige a www.domain1.com/area2? ¿Podría, por ejemplo, modificar $config['base_url'] de acuerdo con la URL recibida, o es imposible? ¿Debo modificar el archivo .htaccess?

+0

si estoy en lo cierto, el controlador para el área2 está en el mismo dominio que todos los demás controladores? – ITroubs

+0

todos los controladores todos en la misma carpeta en el mismo servidor, solo una máquina física, un servidor) –

+0

solo quiero poder ver/area2 controler resultado accediendo con un nombre de dominio diferente al que accedo a la raíz codeigniter. –

Respuesta

7

Después de mucho buscar, he encontrado una solución que parece funcionar, muy fácil de honestos:

Modificar routes.php:

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

No hay necesidad de modificar la redacción.

+0

Me gusta este, también debe asegurarse de que domain1.com no pueda acceder al área2, por ej. add: if ($ _ SERVER ['HTTP_HOST'] == "www.domain1.com") {$ route ['area2'] = "diff_controller";} –

+0

Deberías aceptar una respuesta para tus preguntas, haciendo clic en el color verde marca de verificación junto a cada respuesta: esto marcará la pregunta como resuelta y le dará una pequeña recompensa al que pregunta y al que responde por su problema. En este caso, como usted resolvió su propio problema, debe aceptar esta respuesta. –

+0

esta es la mejor solución y algo que estoy usando en este momento también. – Ash

0

Aquí hay un enlace útil .... http://www.askaboutphp.com/88/codeigniter-setting-up-multiple-sites-on-one-install.html realidad nunca he hecho esto por mí mismo, pero esto parece ser la manera de ir sobre ella sin tener dos ci instala. Buena suerte.

+0

Chequeó el sitio ... –

+0

Este no es realmente mi caso, así que no quiero tener aplicaciones diferentes como él lo hace. Solo quiero acceder a una parte de mi única aplicación (es una parte de toda la web de todos modos) con un dominio diferente. Ver ejemplo en mi edición. –

-1

la primera solución que me viene a la mente es utilizar Apache mod_rewrite, pero hasta donde yo sé, eso funcionaría solo para redirecciones internas (es decir, recursos que residen en el mismo servidor/dominio).

¿Qué hay de usar un iframe? Puede configurar la página de inicio de domain2.com con un iframe de página completa que tome su contenido de domain1.com/area2.

+0

Intentaré estudiar las posibilidades de mod_rewrite entonces. La idea del iframe es un buen pont también, intentaremos eso también. –

0

definitivamente hay que seguir el camino mod_rewrite

+0

Intentaré estudiar las posibilidades de mod_rewrite luego –

Cuestiones relacionadas