Question

Je suis la construction d'un portail qui aura un contenu différent des villes ..

Quand quelqu'un vient sur le site je les veux choisir la ville puis procéder

à

http://city1.site.com

ou

http://city2.site.com

cela peut être fait en utilisant une base de données unique et l'installation de CakePHP?

Était-ce utile?

La solution

Oui il est possible.

En gros, dans votre DNS, vous devez autoriser * .site.com être hébergé sur une seule machine. De cette façon, peu importe ce que vous tapez la sous-domaine machine sera le même.

un exemple dns enregistrement:

*   A   10.0.0.1

Ensuite, dans la déclaration d'hôte virtuel que vous devez mettre

<VirtualHost *>
        DocumentRoot /var/www/path_to_site
        ServerName site.com
        ServerAlias www.site.com *.site.com
</VirtualHost>

Ainsi, peu importe ce que vous tapez à savoir something.site.com ou city.site.com sera redirigé vers une seule application.

Il vous suffit d'analyser l'hôte du php (de préférence dans AppController) et de transformer le sous-domaine filtre.

Il est un peu abstrait, mais de la façon dont je le faire.

Modifier (réponse au commentaire): Il est une question de la façon dont il est construit le système. En gros, si yo ont:

cite1.site.com

dans votre AppController vous pouvez avoir quelque chose comme:

class AppController extends Controller {
  function beforeFilter(){
     $host = explode('.', $_SERVER["HTTP_HOST"]);
     $subdomain = $host[0];
     Configure::write('city', $subdomain);
     $this->City->getId($subdomain); //function in City model fetching City ID by city name
     ...
  }
}

Donc, fondamentalement, après cela dépend ce qui est l'architecture de votre application et la façon dont vous traitez avec cette ville.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top