Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 21-08-2011 22:20:04

keokaz
Membre
Date d'inscription: 06-07-2011
Messages: 113

[resolu] comment retirer l'url "public" ? avec .htacess?

Bonjour, je viens presque de terminer mon petit site, je l'ai mis dans mon hebergeur , il fonctionne bien, maintenant il faut que je m'occupe un peu du routeur, par contre comment fait t'on pour que le visiteur ne vois pas le dossier public mais directement l'url du controlleur ?

fait t'il passer par .htacess ? ou autre chose,
par contre sur apache je ne sais pas si je peux y accéder, je n'ai qu'un abonnement mutualiser pro.
ou c'est une des class routeurs de zend qui peut s'en occuper
merci d'avance de me guider smile

Dernière modification par keokaz (22-08-2011 12:43:10)

Hors ligne

 

#2 22-08-2011 09:18:44

tdutrion
Administrateur
Lieu: Dijon, Paris, Edinburgh
Date d'inscription: 23-12-2009
Messages: 614
Site web

Re: [resolu] comment retirer l'url "public" ? avec .htacess?

Bonjour,

Quand tu dis mutualisé pro ? Chez OVH ?

Si oui tu dois avoir un dossier www dans lequel tu es censé mettre les fichiers du site. Dans ce dossier, tu mets de contenu du dossier public du site. Tu copies le reste des dossiers à la racine de ton hébergement, et tout marchera bien !

Hors ligne

 

#3 22-08-2011 09:40:10

keokaz
Membre
Date d'inscription: 06-07-2011
Messages: 113

Re: [resolu] comment retirer l'url "public" ? avec .htacess?

merci de ta réponse, mais je doit déplacer mes dossier public ?

Code:

www./projetzend/public/

mon arbre sur ovh es la suivante

Code:

--cgibin
--request
--www

faut t'il que je mettent mes dossiers app/library/test au même niveau que le www
ensute je déplace tous ce qui est dans mon dossier "public"  dans www,

ce qui me donnerais comme arbre

Code:

--cgibin
--request
--app
--library
--test
--www // le nom projetzend est remplacé par www ?
 |--css
 |-- image
 |--js

mais en faisant cela cela va pas chabouler toute les chemins ?

Dernière modification par keokaz (22-08-2011 09:42:04)

Hors ligne

 

#4 22-08-2011 09:48:25

tdutrion
Administrateur
Lieu: Dijon, Paris, Edinburgh
Date d'inscription: 23-12-2009
Messages: 614
Site web

Re: [resolu] comment retirer l'url "public" ? avec .htacess?

Si tu veux mettre le projet Zend sur le nom de domaine principal, il faut en effet la dernière architecture.

Si ton site est bien codé, les seuls endroits où il y aura un problème de chemin c'est dans tes tests unitaires.

Pour comprendre le raisonnement, essaye de t'imaginer à quoi ressemble le Vhost chez OVH... En fait c'est un Vhost dont le document root pointe sur /ton_home/www, hors lorsque tu développais, tu utilisais /ton_home/public.

Hors ligne

 

#5 22-08-2011 12:29:20

keokaz
Membre
Date d'inscription: 06-07-2011
Messages: 113

Re: [resolu] comment retirer l'url "public" ? avec .htacess?

merci a toi smile ca fonctionne nickel

Dernière modification par keokaz (22-08-2011 12:42:46)

Hors ligne

 

#6 22-08-2011 16:43:10

keokaz
Membre
Date d'inscription: 06-07-2011
Messages: 113

Re: [resolu] comment retirer l'url "public" ? avec .htacess?

j'ai crier voictoir trop vite sad

j'ai renomer mon index dans "www" qui est public par "accueil.php"> index/ajouter



lorque je vas sur  le chemin du serveur

Code:

www/accueil.php

cela fonctionne bien, zend affiche correctement la vue, j'ai mis un bouton "ajouter" qui demande le controller ajouter, dès que je demande d'ajouter avec l'url

Code:

www/index/ajouter

il me met un message d'erreur

Code:

Fatal error: Uncaught exception 'Zend_View_Exception' with message 'script 'error/error.phtml' not found in path (/homez.335/monsite/application/views/scripts/)' in /homez.335/monsiter/library/Zend/View/Abstract.php:988 Stack trace: #0 /homez.335/stamcar/library/Zend/View/Abstract.php(884): Zend_View_Abstract->_script('error/error.pht...')

si je vide la methode de mon controller ajouter, pas d'erreur, par contre je demande d'instancer

Code:

    public function ajouterAction() {
       $form = new Application_Form_voiture();

on dirait que le serveur n'arrive pas à lire le contenu du formulaire form.php ?

sinon les dossiers qui son à la racine du serveur après de "www", quel doivent être leurs droits ?? en 644?

Dernière modification par keokaz (22-08-2011 16:46:01)

Hors ligne

 

#7 22-08-2011 17:02:58

keokaz
Membre
Date d'inscription: 06-07-2011
Messages: 113

Re: [resolu] comment retirer l'url "public" ? avec .htacess?

je crois le problème c'est que zend ne trouve de fichier, j'ai utiliser la fonction rename donc j'ai défnis des attribu comme ceci

Code:

    protected $id_last; //on charge la valeur avec  set_idlast()
    protected $lien_show = "../public/image/show/";
    protected $lien_big = "../public//image/big/";
    protected $lien_mini = "../public/image/mini/";

du coup il ne va pas trouver le bon chemin, j'ai remplacer tous les public par des "www" c'est la même chose sad, j'ai même mis des
../../image
ca tout chambouloer sad

il y a t'il une methode de zend qui test si le chemin existe ?

Dernière modification par keokaz (22-08-2011 17:12:35)

Hors ligne

 

#8 22-08-2011 17:13:17

tdutrion
Administrateur
Lieu: Dijon, Paris, Edinburgh
Date d'inscription: 23-12-2009
Messages: 614
Site web

Re: [resolu] comment retirer l'url "public" ? avec .htacess?

Je comprends pas tout ce que tu dis...

Pourquoi www/accueil.php ? ça correspond à http://tonsite.com/ ?

Tu as renommé index.php en accueil.php ? pour quoi faire ? Tu as modifié ton .htaccess pour que le rewrite appel accueil.php (qui au passage n'a aucun intérêt comme nom pour ce fichier...) ?

Tu n'as pas de script error.phtml correspondant à ton controller d'erreur, ce qui fait que tu ne pourras pas voir les messages d'erreur.

Pourquoi ton formulaire s'appelle Application_Form_voiture ? Tu devrais suivre les conventions de nommage et mettre une majuscule à voiture (nom de classe et nom de fichier).

Euh c'est quoi ces liens que tu définis là ? Ils ont quel intérêt ? Ton document root est /www/ donc pas besoin de t'embêter avec des liens pareils...
"../public/image/show/" => "/image/show/"

Toutes les requêtes sont de toutes façons prises en charge par index.php (ou n'importe quel fichier contenant les informations de lancement de l'application, défini dans ton .htaccess).

Es-tu sur d'avoir les bases en développement avec ZF ?

Tu devrais vraiment consolider tes connaissances...

Hors ligne

 

#9 22-08-2011 17:48:23

keokaz
Membre
Date d'inscription: 06-07-2011
Messages: 113

Re: [resolu] comment retirer l'url "public" ? avec .htacess?

les attributs protecte sont ici pour refinire le lieu de l'enregistrement de l'image

Code:

[lang=php]
   protected $lien_big = "../public//image/big/";

        $upl_big0 = new Zend_Form_Element_File('upl_big0');
        $upl_big0->setLabel('Telecharger image 1:')
                ->setDestination($this->lien_big);

pour l'histoire d'avoir renomer l'index c'est par ce que je me retrouve avec 2 index.php

Code:

//index.php de redirection
<?php <?php header('Location: http://monsite/ancien_site/index.html'); ?> 
//toute les anciens pas html sont déporter dans le repertoire "ancien_site"

je ne n'utilise pas un header location, je serais obligé de rediriger l'index de ma partie zend

l'un c'est pour faire un redirection de l'ancienne partie (car ce n'est pas moi l'ai fait donc je ne voulais pas m'enbêter, en plus à l'aide de l'assistant le code est vraiment pas popre)
et l'autre le fameux index.php du framwork.
mais je pense que je vais devoir l'intéger dans la partie "www" avec zend(les anciennes pas ne sont que du 100% html +javascript pas de php)

j'ai retitrer toute les lignes qui font appelle a ces attribut, et cela fonctionne bien , j'enregistre et je modfie sans problème.
je vais essayer de voir si c'est pas dans le htacess qu'il faut modifier ou le boostrap

c'est bien que les chemin ne sont pas correcte

Dernière modification par keokaz (22-08-2011 17:53:04)

Hors ligne

 

#10 22-08-2011 17:54:52

tdutrion
Administrateur
Lieu: Dijon, Paris, Edinburgh
Date d'inscription: 23-12-2009
Messages: 614
Site web

Re: [resolu] comment retirer l'url "public" ? avec .htacess?

Franchement essaye d'améliorer ton expression, et d’éclaircir un peu ta compréhension de tes problèmes...

En gros tu as un ancien projet html, et un nouveau en ZF ?

L'ancien devrait alors se trouver dans /www/ancien_site par exemple, et ton .htaccess (dans /www) devrait rewriter les requêtes finissant par .html dans le dossier /www/ancien_site.

Personnellement ça ne me semble pas plus dur que ça pour avoir quelque chose de propre...

Hors ligne

 

#11 22-08-2011 22:30:36

keokaz
Membre
Date d'inscription: 06-07-2011
Messages: 113

Re: [resolu] comment retirer l'url "public" ? avec .htacess?

j'ai recommencer à zero mon projet et petit à petit fait un copier coller, j'ai remarquer que si je change le  dossier du projet cela ne fonctionne plus, je pense que comme j'ai refait petit à petie pas à par avec zend tool, on fichier zfproject.xml est correcte.

en plus le nombre de fois que je me fait avoir en  downloaddant des  fichiers hebergeurs en local et qui ne marche car les doits ou l'execution était bloquant, ca me ralentit dans ma progression.

j'ai bien modifier mes attribut de lien par des ww et ça fonctionne smile

Code:

[lang="php"}
    protected $id_last; //on charge la valeur avec  set_idlast()
    protected $lien_show = "../www/image/show/";
    protected $lien_big = "../www/image/big/";
    protected $lien_mini = "../www/image/mini/";

en tout ca meci à tois de m'avoir donner l'atuce de mettre les dossier au même niveau que le www, je n'aurai jamais penser.



pense tu que ces 3 urls qui rest fixe je peux les mettre dans un fichier de constante ? dans symfony il y avais un fichier en yml , on pouvais mettre toute les constantes, c'était pratique car si on devais changer une valeur, on ne se tapait pas a corriger toute les donnée propager.

smile

Dernière modification par keokaz (22-08-2011 22:34:19)

Hors ligne

 

#12 22-08-2011 22:35:04

tdutrion
Administrateur
Lieu: Dijon, Paris, Edinburgh
Date d'inscription: 23-12-2009
Messages: 614
Site web

Re: [resolu] comment retirer l'url "public" ? avec .htacess?

Le fichier où on défini les constantes est en général index.php (d'ailleurs tu y trouveras APPLICATION_PATH, APPLICATION_ENV).

Sinon, je ne vois toujours pas l'intérêt de tes variables dans ce cas la (qui devraient soit dit en passant être des constantes plutôt que des variables), car logiquement ton execution se fait dans /www/index.php et ton current dir est donc /www/.

Hors ligne

 

#13 23-08-2011 08:05:40

keokaz
Membre
Date d'inscription: 06-07-2011
Messages: 113

Re: [resolu] comment retirer l'url "public" ? avec .htacess?

je m'y perd un peu avec ces chemins,

Code:

// Définit le chemin du repértoire de l'application
defined('APPLICATION_PATH')
|| define('APPLICATION_PATH', realpath(dirname(__FILE__) . './application'));

si par exemple j'ai cette arbre, et que j'utilise  APPLICATION_PATH qui est au dessus :

Code:

racine
|-- application

Zend ira chercher le repertoire application dans:

Code:

racine/application

mainenant je par exemple application change de dossier:

Code:

racine
|--newdossier
   |--application
|--www
  |--index.php //le fichier qui contien APPLICATION_PATH

il faut que je chande APPLICATION_PATH ?

Code:

// Définit le chemin du repértoire de l'application
defined('APPLICATION_PATH')
|| define('APPLICATION_PATH', realpath(dirname(__FILE__) . '.newdossier/application'));

en faisant ceci,zen ira chercher son dossier application dans

Code:

raine/newdossier/application

Dernière modification par keokaz (23-08-2011 08:15:54)

Hors ligne

 

#14 23-08-2011 09:11:39

tdutrion
Administrateur
Lieu: Dijon, Paris, Edinburgh
Date d'inscription: 23-12-2009
Messages: 614
Site web

Re: [resolu] comment retirer l'url "public" ? avec .htacess?

Je comprends toujours pas ton problème...

Code:

[lang=php]
|| define('APPLICATION_PATH', realpath(dirname(__FILE__) . './newdossier/application'))

Logiquement il te manquait le / devant newdossier. Sinon dans le concept c'est bon.

Hors ligne

 

#15 23-08-2011 10:23:12

keokaz
Membre
Date d'inscription: 06-07-2011
Messages: 113

Re: [resolu] comment retirer l'url "public" ? avec .htacess?

mon soucie c'est que je ne sais pas retrouver mes fichiers, car je m'enbrouille avec les "../", il faudrai que j'utilise autre chose

Si je décompose cette ligne que tu m'a donner
dirname(__FILE__) serais "racine";
en ajoutant './newdossier/application' on obtiendrai

Code:

//racine + /newdossier/application
racine/newdossier/application

Si je veux afficher un image comment je procède ?

Code:

racine
|--newdossier
  |--application
    |--vue
      |--fleur.phtml
|--www
  |--image
    |--lesfleurs
      |--tulipe.jpg

Code:

[lang=php]
fleur.phtml
../  --> pour monter le dossier vue
../../ -->pour monter le dossier appplication
../../../ -->pour monter le dossier new dossier
../../../  --> /www/image/lesfleus/tulipe.jpg
<img src="../../../www/image/lesfleus/tulipe.jpg>
il me faudrai un system qui affiche seulement le debut de l'adresse image

lorsque j'execute fleur.phtml  pour accéder aux dossier image je doit faire descendre 4 fois de dossier, j'ai voulu utliser url de base, mais apparement dans la vue il ne le voit pas.

pour vérfier le repertoire current j'ai essayer de faire dans ma vue, mais rien ne s'affiche

Code:

<?php echo $this->baseUrl() ?>

Dernière modification par keokaz (23-08-2011 10:36:33)

Hors ligne

 

#16 23-08-2011 10:36:46

tdutrion
Administrateur
Lieu: Dijon, Paris, Edinburgh
Date d'inscription: 23-12-2009
Messages: 614
Site web

Re: [resolu] comment retirer l'url "public" ? avec .htacess?

J'aurais envie de dire dans fleur.phtml, le code suivant suffit :

Code:

[lang=phtml]
<img src="<?php echo $this->baseUrl() ?>/image/lesfleus/tulipe.jpg">

Comme tu le disais, le baseUrl n'affiche rien (normal, le base url de ton projet est le base url de ton host). Ensuite, le chemin de l'image est donné en fonction de ce chemin, donc dans tout ce qui est sous www.

Hors ligne

 

#17 23-08-2011 11:23:03

keokaz
Membre
Date d'inscription: 06-07-2011
Messages: 113

Re: [resolu] comment retirer l'url "public" ? avec .htacess?

en effet ca fonctionne bien, je pensais que ça allait afficher un erreur

j'aimerai avec cette image tulipe la miniaturiser, j'affiche déjà l'image a traiter par ce script

Code:

//je suis dans fleurs.phtml
<?php
$image = "/tulipe.jpg";
$prefix= "/image/big";
$mini="/image/mini";
?>
<h1>image a miniaturiser</h1>
<img src="<?php echo $this->baseUrl().$prefix.$image;?>" >

jusqu'a la pas de sourci, j'ai bien mon image qui est afficher

maintenant je souhaite utiliser phpThump

j'ai donc rajouter un ligne supplémentaire

Code:

<?php
$image = "/tulipe.jpg";
$prefix= "/image/big";
$mini="/image/mini";
?>
<h1>image a miniaturiser</h1>
<img src="<?php echo $this->baseUrl().$prefix.$image;?>" >
<?php echo $this->thumb(
                                                          $this->baseUrl().$prefix.$image, 
                                                          100, 100,
                                                          $this->baseUrl().$mini,
                                                          $this->baseUrl().$mini); ?>

jai un erreur il ne trouve pas l'image

Code:

An error occurred
Application error
Exception information:

Message: Image file not found: /image/big/tulipe.jpg 

#0 /homez.335/monsite/library/PhpThumb/ThumbBase.inc.php(172): ThumbBase->triggerError('Image file not ...')
#1 /homez.335/monsite/library/PhpThumb/ThumbBase.inc.php(110): ThumbBase->fileExistsAndReadable()
#2 /homez.335/monsite/library/PhpThumb/GdThumb.inc.php(96): ThumbBase->__construct('/image/big/tuli...', false)
#3 /homez.335/monsite/library/PhpThumb/ThumbLib.inc.php(127): GdThumb->__construct('/image/big/tuli...', Array, false)
#4 /homez.335/monsite/application/views/helpers/Thumb.php(14): PhpThumbFactory::create('/image/big/tuli...')
#5 [internal function]: Zend_View_Helper_Thumb->thumb('/image/big/tuli...', 100, 100, '/image/mini', '/image/mini')
#6 /homez.335/monsiter/library/Zend/View/Abstract.php(350): call_user_func_array(Array, Array)
#7 /homez.335/monsite/application/views/scripts/index/ajouter.phtml(15): Zend_View_Abstract->__call('thumb', Array)
#8 /homez.335/monsiteapplication/views/scripts/index/ajouter.phtml(15): Zend_View->thumb('/image/big/tuli...', 100, 100, '/image/mini', '/image/mini')
#9 /homez.335/monsite/library/Zend/View.php(108): include('/homez.335/stam...')
#10 /homez.335/monsite/library/Zend/View/Abstract.php(888): Zend_View->_run('/homez.335/stam...')
#11 /homez.335/monsite/library/Zend/Controller/Action/Helper/ViewRenderer.php(900): Zend_View_Abstract->render('index/ajouter.p...')
#12 /homez.335/monsite/library/Zend/Controller/Action/Helper/ViewRenderer.php(921): Zend_Controller_Action_Helper_ViewRenderer->renderScript('index/ajouter.p...', NULL)
#13 /homez.335/monsite/library/Zend/Controller/Action/Helper/ViewRenderer.php(960): Zend_Controller_Action_Helper_ViewRenderer->render()
#14 /homez.335/monsite/library/Zend/Controller/Action/HelperBroker.php(277): Zend_Controller_Action_Helper_ViewRenderer->postDispatch()
#15 /homez.335/monsite/library/Zend/Controller/Action.php(527): Zend_Controller_Action_HelperBroker->notifyPostDispatch()
#16 /homez.335/monsite/library/Zend/Controller/Dispatcher/Standard.php(295): Zend_Controller_Action->dispatch('ajouterAction')
#17 /homez.335/monsite/library/Zend/Controller/Front.php(954): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http))
#18 /homez.335/monsite/library/Zend/Application/Bootstrap/Bootstrap.php(97): Zend_Controller_Front->dispatch()
#19 /homez.335/monsite/library/Zend/Application.php(366): Zend_Application_Bootstrap_Bootstrap->run()
#20 /homez.335/monsite/www/index.php(26): Zend_Application->run()
#21 {main}  

Request Parameters:

array (
  'controller' => 'index',
  'action' => 'ajouter',
  'module' => 'default',
)

j'ai utiliser le css pour réduire mes images smile

Dernière modification par keokaz (24-08-2011 17:47:20)

Hors ligne

 

#18 27-10-2011 19:34:12

manshe13
Nouveau membre
Date d'inscription: 27-10-2011
Messages: 2

Re: [resolu] comment retirer l'url "public" ? avec .htacess?

Pelt comprendre le raisonnement, essaye de t'imaginer à quoi ressemble le Vhost chez OVH... En fait c'est un Vhost dont le writing signifier pointe sur /ton_home/www, hors lorsque tu développais, tu utilisais /ton_home/public

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