Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 23-05-2009 13:31:08

callypig
Nouveau membre
Date d'inscription: 23-05-2009
Messages: 5

setBaseUrl() ne veut rien savoir chez moi

Bonjour,
Tout nouveau avec Zend, setBaseUrl() me semblait on ne peut plus simple d'utilisation, et pourtant...
Voilà ma config. A la racine de mon serveur web, j'ai :

ZendFrameworkInAction/
   - application/    contient bootstrap.php
   - library/
   - www/     contient .htaccess et index.php

Voici une url qui marche : http://localhost/ZendFrameworkInAction/www/place/browse
Et voici celle que que j'aimerais faire marcher : http://localhost/place/browse

J'ai donc rajouté une ligne dans mon bootstrap , avec un setBaseUrl() :

Code:

        $frontController = Zend_Controller_Front::getInstance();
        $frontController->throwExceptions(false);
        $frontController->setControllerDirectory(ROOT_DIR . '/application/controllers');
        $frontController->setBaseUrl('/ZendFrameworkInAction/www');

Mais rien n'y fait, j'ai toujours un
404 Not Found The requested URL /place/browse was not found on this server.

J'ai donc loupé quelque chose, mais quoi ?
Merci pour vos lumières.

Hors ligne

 

#2 23-05-2009 13:44:49

Delprog
Administrateur
Date d'inscription: 29-09-2008
Messages: 670

Re: setBaseUrl() ne veut rien savoir chez moi

Salut,

Quelles sont tes règles de ré-écriture dans ton .htaccess ou ta conf ?

Pour les sites en localhost j'utilise des alias dans un fichier .conf que j'include dans le httpd.conf (pas de .htaccess à promener).
Exemple :

Code:

<Location /monsite>
  # Règles de réécriture
  RewriteEngine On
  RewriteBase /monsite
  RewriteCond %{REQUEST_FILENAME} -s [OR]
  RewriteCond %{REQUEST_FILENAME} -l [OR]
  RewriteCond %{REQUEST_FILENAME} -d
  RewriteRule ^.*$ - [NC,L]
  RewriteRule ^.*$ index.php [NC,L]
  AllowOverride All
  Order deny,allow
  Allow from all
</Location>
Alias /monsite "F:/PHPServer/website/www/monsite"

Dans ce cas là, ZF détecte normalement tout seul le baseUrl, même si par acquis de conscience je le paramètre quand même manuellement smile


A+ benjamin.


http://www.anonymation.com/ - anonymation - Studio de création.
http://code.anonymation.com/ - anonymation - blog - développement et architecture web

Hors ligne

 

#3 23-05-2009 14:33:51

callypig
Nouveau membre
Date d'inscription: 23-05-2009
Messages: 5

Re: setBaseUrl() ne veut rien savoir chez moi

Merci pour ta réponse.
Si je comprends bien, je dois supprimer mon .htaccess, et rajouter  à la fin de mon httpd.conf :

Code:

<Location /ZendFrameworkInAction/www>
  # Règles de réécriture
  RewriteEngine On
  RewriteBase /ZendFrameworkInAction/www
  RewriteCond %{REQUEST_FILENAME} -s [OR]
  RewriteCond %{REQUEST_FILENAME} -l [OR]
  RewriteCond %{REQUEST_FILENAME} -d
  RewriteRule ^.*$ - [NC,L]
  RewriteRule ^.*$ index.php [NC,L]
  AllowOverride All
  Order deny,allow
  Allow from all
</Location>
Alias /ZendFrameworkInAction/www "C:/wamp/www/ZendFrameworkInAction/www"

Ma première url est ok, mais j'ai toujours le même problème avec http://localhost/place/browse,
avec ou sans setBaseUrl dans mon bootstrap...



Rem - mon .htaccess était :

Code:

# Rewrite rules for Zend Framework
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .* index.php

# Security: Don't allow browsing of directories
Options -Indexes

Hors ligne

 

#4 23-05-2009 23:50:12

callypig
Nouveau membre
Date d'inscription: 23-05-2009
Messages: 5

Re: setBaseUrl() ne veut rien savoir chez moi

Bon, si quelqu'un peut m'expliquer pourquoi setBaseUrl ne marche pas dans mon cas, il est le bienvenu.
En attendant, je vais passer par l'utilisation de virtual hosts, ce qui résout mon problème.

Hors ligne

 

#5 25-05-2009 16:03:57

DavidV
Membre
Date d'inscription: 19-05-2009
Messages: 19

Re: setBaseUrl() ne veut rien savoir chez moi

Je ne suis pas un expert, mais à mon avis

Code:

$frontController->setBaseUrl('/ZendFrameworkInAction/www');

permet d'indiquer à l'application que la racine du site est la.

Mais ca ne permet pas d'indiquer au serveur (apache sans doutes) que http://localhost/ = http://localhost/ZendFrameworkInAction/www/

Hors ligne

 

#6 26-05-2009 20:18:58

callypig
Nouveau membre
Date d'inscription: 23-05-2009
Messages: 5

Re: setBaseUrl() ne veut rien savoir chez moi

Oui, c'est ce que je fais avec mes virtual hosts, qui me permettent de faire pointer différents localhosts (client1.localhost, client2.localhost, etc.) sur autant de répertoires racine.

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