2011-05-06 24 views
6

Básicamente estoy tratando de hacer una aplicación CodeIgniter con subdominios de localización tal que si accedo:subdominios comodín para una sola aplicación CodeIgniter

ca.site.com -> se correría el mismo sistema, pero muestra el contenido canadiense . us.site.com -> todavía ejecuta el mismo sistema pero muestra contenido americano.

además si tengo acceso www.site.com, que obtendría automáticamente la localización apropiada usando ip2country y sería redireccionado como si desde el Reino Unido, redir a uk.site.com

sólo habría 1 carpeta del sistema y 1 carpeta de la aplicación:

raíz /sistema /index.php aplicación

ahora quiero las direcciones URL que se quedara desde cualquier localización que son. como:

uk.site.com/profile/1 accederá a un perfil de controlador ca.site.com/profile/3 también tendrá acceso a la misma uk.site.com controlador utiliza

¿Cómo se me capaz de implementar esto?

discúlpeme si mi consulta es un poco cruda. pero espero que alguien pueda ayudarme

Respuesta

2

Probablemente hay muchas maneras de hacer esto ... pero que puedo pensar en la parte superior de mi cabeza es poner algo en el archivo index.php donde se establecen los valores de configuración personalizados precargado que hace algo como esto ...

/* 
* ------------------------------------------------------------------- 
* CUSTOM CONFIG VALUES 
* ------------------------------------------------------------------- 
* 
* The $assign_to_config array below will be passed dynamically to the 
* config class when initialized. This allows you to set custom config 
* items or override any default config values found in the config.php file. 
* This can be handy as it permits you to share one application between 
* multiple front controller files, with each file containing different 
* config values. 
* 
* Un-comment the $assign_to_config array below to use this feature 
* 
*/ 
    $region_prefix_var = explode('.', $_SERVER['HTTP_HOST']); 
    $assign_to_config['region_prefix'] = $region_prefix_var[0]; 

y luego en su archivo config.php

global $region_prefix_var; 
$config['base_url'] = $region_prefix_var[0].".site.com/"; 

... o podría anular la base_url en el archivo index.php en la matriz $ assign_to_config en función del valor $ _SERVER ['HTTP_HOST']. Luego, en ningún otro controlador o lo que se puede basar las cosas fuera de

$this->config->item('region_prefix'); 

Y luego simplemente apunte de todos los subdominios en el mismo directorio y localizar dentro de su aplicación.

0

Tendría que encontrar la manera de permitir redirecciones dinámicas de subdominios (aparentemente es posible con un poco de .htaccess mod_rewrite magic), luego crear un controlador maestro, con el primer parámetro en el método de índice como idioma, luego tener el redireccionamiento del subdominio va desde (.*).site.com/(.*) = site.com/$1/$2, esto debería funcionar, pero no sigue el enfoque MVC tradicional de CodeIgniter y es más un hack que una forma correcta de hacerlo, estoy seguro de que alguien más sabrá una forma más semántica de trabaja esto

Si no recuerdo mal, redirecciones subdominios están documentados en algún lugar de apache.org, y usted encontrará más información que he proporcionado en google

Cuestiones relacionadas