Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Une question qui va peut être sembler triviale à beaucoup mais je la pose quand même.
Je dois créer pour un client un système de pré-réservation hôtelière, avec du front et du back office.
Ce client a déjà un site très complet de présentation de voyages, d'articles touristiques etc, des centaines de pages et tout ça fait "à la main" en pur HTML sauvage sans aucune données dynamique (pas de SGBD).
Je dois bien entendu me placer la dedans de manière à avoir une URL du style
http://www.siteclient.fr/reservationhotel
Donc ma question : est-il possible de créer un sous répertoire dans leur arborescence, dans lequel je place mon application avec le ZF et une réécriture d'URL limitée à ce répertoire ?
Dernière modification par Jean-Marc Rigade (12-10-2008 13:28:47)
Hors ligne
Bonjour,
oui, dans ton virtual host (dans httpd.conf), tu peux ajouter un "Location" pour ta sous-appli. Ca peut donner quelque chose comme ça :
<VirtualHost *> ServerName www.siteclient.fr ServerAdmin toto@hotmail.com DocumentRoot /www/htdocs <Location /reservationhotel> RewriteEngine On RewriteBase /reservationhotel RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule !\.(js|ico|gif|jpg|png|css|html|swf|htm|txt) /reservationhotel/docRoot/index.php [L] </Location> </VirtualHost>
Dans cet exemple :
* /www/htdocs : ancien site
* /www/htdocs/reservationhotel/docRoot/index.php : le bootstrap de ton appli
Il faudra faire en sorte que les répertoire sous /www/htdocs/reservationhotel ne soient pas lisibles par apache sauf /www/htdocs/reservationhotel/docRoot/ pour éviter un trou de sécu...
Ensuite dans ton index.php, il faut bien penser à configurer les baseUrl dans ton bootstrap.
A+, Philippe
PS : si tu veux ton appli complètement ailleurs, tu peux aussi faire ça en utilisant des Alias apache (avec des Location pour les rewrite, comme ici
Hors ligne
Merci beaucoup pour ta réponse,
pour le rewrite, dois-je utiliser exactement ta réécriture ou je peux utiliser la nouvelle version qui semble préconisée pour tenir compte de Dojo :
RewriteEngine On RewriteCond %{REQUEST_FILENAME} -s [OR] RewriteCond %{REQUEST_FILENAME} -l [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^.*$ - [NC,L] RewriteRule ^.*$ index.php [NC,L]
Pour les Alias, je vais regarder les doc Apache disponibles et pas trop pointues.
Ma préoccupation est de ne pas perturber le site du client.
Reste le problème des sessions, mais j'ai vu des contributions sur le sujet ici, je vais les relire...
Hors ligne
Je viens de regarder la doc pour les alias et il semble que la syntaxe soit :
Alias /reservation "d:/serveurs/reservation/" <Directory "d:/serveurs/reservation"> Options FollowSymLinks Indexes AllowOverride all Order deny,allow allow from localhost deny from all </Directory>
la section "location", tu la met à l'intérieur de directory ?
Ou bien tu balances la réécriture d'URL dans le directory ?
Je sais que je suis hors sujet, mais bon, ça peut aider tout le monde...
Hors ligne
Je mets l'alias le directory et le Location dans le VirtualHost. En reprenant mon 1er exemple, ça donnerait :
<VirtualHost *> ServerName www.siteclient.fr ServerAdmin toto@hotmail.com DocumentRoot /www/oldAppli/htdocs Alias /reservationhotel /www/newAppli/htdocs <Directory "/www/newAppli/htdocs"> Order allow,deny Allow from All </Directory> <Location /reservationhotel> RewriteEngine On RewriteBase /reservationhotel RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule !\.(js|ico|gif|jpg|png|css|html|swf|htm|txt) /reservationhotel/index.php [L] </Location> </VirtualHost>
Après pour les rewrite effectivement, tu mets ce que tu veux en fonction de tes besoins
A+, Philippe
PS: je n'ai pas testé la conf, mais aux erreurs de syntaxe près, ça devrait marcher !
Hors ligne
Merci beaucoup pour ton aide, je vais essayer ça.
Hors ligne