Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 10-12-2008 18:06:52

logikstik
Nouveau membre
Date d'inscription: 10-12-2008
Messages: 3

[Résolu][Virtualhosts] Sous-domaines virtuels et Zend

Bonsoir à tous et à toutes smile

Bon voilà, depuis quelques jours je tente de faire du "sous-domaines virtuels" avec Zend et à vrai dire, j'ai fait une mini avancée (rien de bien réjouissant...)

Je m'explique, je programme une petite plateforme de blog et je me retrouve coincé au niveau des URL.
Au lieu que l'utilisateur tape http://www.domaine.tld/blog/monblog (ce qui n'est pas jolie), le mieux serait http://monblog.domaine.tld.

J'avoue être complètement perdu car il faut que ça puisse aussi gérer les controllers, les actions, etc...

Dans mon virtualhost, j'ai écrit ceci :

<VirtualHost MON_IP:80>
        ServerAdmin webmaster@mon_site.net
        DocumentRoot /home/mon_site/www/public
        SuexecUserGroup mon_user users
        ServerName www.domaine.tld
        ServerAlias *.domaine.tld

        RewriteEngine on
        RewriteCond %{http_host} .
        RewriteCond %{http_host} !^www.domaine.tld [NC]
        RewriteCond %{http_host} ^([^.]+)\.domaine.tld [NC]
        RewriteRule ^(.*) http://www.domaine.tld/blog/%1/ [QSA,L]

        <Location />
            RewriteEngine on
            RewriteCond %{REQUEST_FILENAME} !-f
            RewriteCond %{REQUEST_FILENAME} !-d
            RewriteRule !\.(js|ico|txt|gif|jpg|png|css)$ /index.php
        </Location>

        CustomLog logs/www.domaine.tld-access_log combined
        ScriptAlias /cgi-bin/ /home/mon_site/cgi-bin/
        AddHandler x-httpd-php5 .php
</VirtualHost>

<Directory "/home/mon_site/www/public">
    Options FollowSymlinks
    AllowOverride All
    Order Deny,Allow
    Allow from all
</Directory>


Si je tape une URL du type http://monblog.domaine.tld, je suis rediriger vers le blog concerné correctement mais mon URL change en http://www.domaine.tld/blog/monblog. Je sais que j'ai fais une simple redirection mais je ne sais plus quoi essayer pour réussir cette technique.

Votre aide serait la bienvenue smile

Merci

P.S. :
Si ça peut aidé, je suis sur un serveur dédié chez OVH (Kimsufi).
Et j'ai bien mis la ligne qui faut dans le fichier BIND (*    IN    A    IP_DU_SERVEUR).

Dernière modification par logikstik (11-12-2008 09:26:37)

Hors ligne

 

#2 10-12-2008 19:21:27

philippe
Administrateur
Lieu: Grenoble
Date d'inscription: 01-03-2007
Messages: 1624

Re: [Résolu][Virtualhosts] Sous-domaines virtuels et Zend

Il faut faire un proxy avec apache

l'idée est de faire 2 virtual host :
- sur monblog.domaine.tld, tu fais un proxy qui "proxifie" tes URL vers www.domaine.tld/blog/monBlog
- sur www.domaine.tld, tu fais ta conf standard comme si l'internaute surfait sur /blog/monBlog

ton proxy, tu le fais :
- soit avec mod_rewrite et les flag [P] (cf la doc)
- soit avec mod_proxy

Par contre tous tes liens dans ton blog doivent être relatifs, sinon tu vas te balader d'un domaine à l'autre avec des erreurs de répertoire... réécrire le coeur de la page en +, c'est quasi impossible (surtout si t'as du js et du flash...). Si vraiment t'en as besoin il y a un mod_proxy_html je crois, mais ça ne marche pas sauf sur un hello world...

bon courage,
Philippe


twitter : @plv ; kitpages.fr : Création de sites internet à Grenoble et Paris

Hors ligne

 

#3 10-12-2008 20:30:23

yannux
Membre
Lieu: Rennes
Date d'inscription: 07-04-2007
Messages: 284
Site web

Re: [Résolu][Virtualhosts] Sous-domaines virtuels et Zend

Sinon sans passer par du rewrite ou proxy, tu analyse la première partie de l'url pour détecter le nom du blog, et là tu charge tous les paramètres qui lui correspondent ...


Société : Direct Info Service

Hors ligne

 

#4 10-12-2008 23:43:09

logikstik
Nouveau membre
Date d'inscription: 10-12-2008
Messages: 3

Re: [Résolu][Virtualhosts] Sous-domaines virtuels et Zend

Merci à vos deux pour vos conseils et solutions mais j'ai finalement trouver plus simple. J'ai utiliser le router du controlleur frontal.

Je vous montre ma découverte smile

Code:

        $hostnameRoute = new Zend_Controller_Router_Route_Hostname(
            ':user.domaine.tld',
            array(
                'module'     => 'blog',
                'controller' => 'index',
                'action'     => 'index'
            )
        );
        
        $plainPathRoute = new Zend_Controller_Router_Route_Static('');
        $routeur->addRoute('blog', $hostnameRoute->chain($plainPathRoute));

Maintenant je peux appeler le blog de cette façon http://monblog.domaine.tld qui sera redirigé automatiquement vers le module "blog".
Il faut aussi écrire une règle pour les "www".

Voilà ! Si jamais je trouve plus d'infos, je viendrai editer ce post pour vous en faire part !

A bientôt et merci !

Dernière modification par logikstik (10-12-2008 23:43:28)

Hors ligne

 

#5 11-12-2008 09:08:33

nORKy
Membre
Date d'inscription: 06-03-2008
Messages: 1098

Re: [Résolu][Virtualhosts] Sous-domaines virtuels et Zend

philippe !! mod_proxy pour faire ca ! quel horreur ! Ce n'est pas du tout son but !

Il existe la directive serverAlias pour ca !

http://httpd.apache.org/docs/2.0/mod/co … erveralias


----
Gruiiik !

Hors ligne

 

#6 11-12-2008 09:25:41

logikstik
Nouveau membre
Date d'inscription: 10-12-2008
Messages: 3

Re: [Résolu][Virtualhosts] Sous-domaines virtuels et Zend

Bon au propre voilà ce que donne le router de mon initializer.

Code:

        $router = $this->_front->getRouter();
        $router->removeDefaultRoutes();

        $pathRoute = new Zend_Controller_Router_Route(':controller/:action/*',
            array('controller' => 'index', 'action' => 'index')
        );

        $accountRoute = new Zend_Controller_Router_Route_Hostname(':user.domaine.tld',
            array('module' => 'blog'), array('user' => '([a-z0-9]+)')
        );
        $router->addRoute('blog', $accountRoute->chain($pathRoute));

        
        $adminRoute = new Zend_Controller_Router_Route_Hostname('admin.domaine.tld',
            array('module' => 'admin')
        );
        $router->addRoute('admin', $adminRoute->chain($pathRoute));
        
        
        $defaultRoute = new Zend_Controller_Router_Route_Hostname('www.domaine.tld',
            array('module' => 'default')
        );
        $router->addRoute('default', $defaultRoute->chain($pathRoute));

Du coup je peux gérer des sous-domaine virtuels sans htaccess, simple et pratique. Merci Zend smile

Hors ligne

 

#7 11-12-2008 09:42:26

philippe
Administrateur
Lieu: Grenoble
Date d'inscription: 01-03-2007
Messages: 1624

Re: [Résolu][Virtualhosts] Sous-domaines virtuels et Zend

@nORKy : ben non, les paths des URLs changent aussi. Sauf si j'ai pas bien compris le problème, on veut surfer sur http://monblog.domaine.tld/ à la racine alors que le site est sur http://www.domaine.tld/blog/monBlog (donc pas à la racine, dans /blog/monBlog). Le path n'est pas le même sur les 2 applis => avec serveurAlias on l'a dans l'os.

A+, Philippe


twitter : @plv ; kitpages.fr : Création de sites internet à Grenoble et Paris

Hors ligne

 

#8 11-12-2008 09:54:08

nORKy
Membre
Date d'inscription: 06-03-2008
Messages: 1098

Re: [Résolu][Virtualhosts] Sous-domaines virtuels et Zend

En fait, je me rend compte que c'est moi qui n'avait pas compris son problème smile

[mode hors-sujet]
n'empêche que pour arrivé à utiliser mod_proxy en local, il faut le vouloir.
Moi, j'utilise mod_proxy pour exposé une partie d'un serveur web d'un LAN sur un réseau public par le biais d'un serveur public

machine client --- INTERNET -----
----> machine public (mod_proxy) ---- nuage --- LAN ---
----> machine prive (accès normalement qu'en local)

On s'en sert par exemple pour un service de surveillance de nos lignes Télécom. On a affichage de tous l'état de tous nos lignes (ce compte par milliers). Cela est gérer par un serveur sur notre réseau. Mais pour certains client qui veulent aussi voir l'état de leur ligne (latence, consommation, ...) avec un
serveur public, je fais proxy vers ce serveur pour autoriser à certains client a voir leur lignes

[/hors-sujet]


----
Gruiiik !

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages