php - remove - route controller codeigniter
Codeigniter, dominio a un área determinada del sitio (4)
No soy un programador con mucha experiencia y estoy usando CodeIgniter por segunda vez.
Supongamos que tengo www.domain1.com. Entonces tendré, digamos 3 controladores / área1, / área2, / área3. 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 hacer que esto funcione 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 cambiando $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 puedo acceder a httpd.conf
). Está en una máquina y la raíz del sitio debe ser accedida por www.domain1.com
Todos los dominios están fuera registrados 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 enfatizar una de las áreas, la que muestra el controlador / área2, y desea usar un dominio diferente para esa área, www.domain2.com
¿Qué puedo hacer para que cuando el usuario vaya a www.dominio2.com, CI los redireccione a www.dominio1.com/area2? ¿Podría, por ejemplo, modificar $config[''base_url'']
según la URL recibida, o es imposible? ¿Debo modificar el archivo .htaccess
?
Aquí hay un enlace útil ... http://www.askaboutphp.com/88/codeigniter-setting-up-multiple-sites-on-one-install.html Nunca he hecho esto yo mismo, pero este parece ser el camino para hacerlo sin tener dos instalaciones ci. Buena suerte.
La primera solución que me viene a la mente es usar Apache mod_rewrite, pero hasta donde 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.
definitivamente necesitas ir al modo mod_rewrite
Después de mucha búsqueda, encontré una solución que parece funcionar, muy fácil de ser honesto:
Modificar routes.php
:
if ($_SERVER[''HTTP_HOST'']=="www.domain2.com") {
$route[''default_controller''] = "area2";
}
No es necesario modificar la redacción.