Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour à tous!
J'essaie d'installer une appli faite avec zend dans un sous répertoire d'un site et j'ai de gros problème à m'en sortir. Donc si quelqu'un pouvait s'attarder 2 minutes sur mon problème, je lui en serait très reconnaissant.
La config de mes répertoires
- www - - cms - - - rep1 - - - rep2 - - - rep3 - - - rep4 - - - news - - - - application - - - - library - - - - public_html - - - rep5 - - - rep...
.htaccess dans le /cms
RewriteEngine On RewriteCond %{REQUEST_URI} !/news RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ /index.php/$1 [L]
.htaccess dans le /csm/news
RewriteBase /news/ RewriteEngine on RewriteRule !\.(js|ico|gif|jpg|png|css)$ index.php
Mon problème:
Je n'arrive pas à redéfinir la racine de l'appli zend à "/news/". Tous mes liens et actions de formulaires redirigent vers la racine /cms et non cms/news.
- J'ai essayé de modifier les .htacces, mais pas trouvé de solution.
- J'ai essayé de redéfinir le document_root avec Zend_Controller_Router_Rewrite mais rien n'y fait.
- J'ai essayé d'ajouter la balise <base href="/news/" > pas de résultat non plus...
J'avoue que je suis à court d'idées et suis partant pour toute solutions!
Merci à vous !
Dernière modification par micririgen (12-10-2008 16:36:19)
Hors ligne
Je pense que cette contribution peut t'aider :
ICI
Hors ligne
Salut micririgen,
tu ne nous précises pas pourquoi tu tentes de t'en sortir de cette façon, qui n'est pas la meilleure, mais peut-être n'as tu pas le choix. En revanche, si c'est juste parce que tu ne sais pas faire autrement, alors je te conseille de te pencher sur la solution des VirtualHost, nettement plus adaptée.
Sinon, s'il te faut vraiment passer par le mod_rewrite uniquement...
Je ne comprends pas vraiment l'intérêt du .htaccess au niveau du dossier CMS. Apparemment, il ne sert qu'à rediriger toutes les requêtes sur /index.php/[l'url d'origine] si cette dernière ne pointe ni sur /news, ni sur un dossier ou un fichier (ce qui rend la condition relative à /news inutile, puisqu'il s'agit justement d'un dossier...). De ce fait, tous les appels d'actions ZF, qui sont des urls de type "/cms/news/controller/action" remplissent les conditions, et sont donc renvoyés vers /index.php
Sinon, voici deux anomalies dans tes .htaccess :
1) ton RewRiteCond %{REQUEST_URI} !/news ne match que l'url "/news"... essaye plutôt "^/news.*$" (théoriquement corriger ça devrait suffire... voir explications ci-dessus)
2) Je ne pense pas que ton RewriteBase avant le RewriteEngine On soit une très bonne idée. En toute logique, RewriteEngine On a déjà été exécuté par le précédent .htaccess (niveau supérieur), mais ce n'est quand même pas très propre
Enfin, je réitère mon premier conseil : hôtes virtuels !!!
Hors ligne
Bonjour à vous deux et merci pour vos réponses. Le VirtualHost est effectivement la solution. J'ai laissé ce post il y a quelques temps déjà et j'ai en fait trouvé une autre solution qui me convient mieux.
Pour info, si ça peut aider quelqu'un ...
La config de mes répertoires:
- www - library - appli_1 - appli_2 - appli_3 ...
Chaque application est contenue dans un sous-domaine qui va se traduire dans l'url par http://appli_1.monsite.com, http://appli_2.monsite.com, http://appli_3.monsite.com, ... Et chaque sous domaine peut contenir l'arbo et le bootstrap Zend et se servir de la library Zend, ou bien il peut contenir une application autre qui tourne pour elle-même dans son coin. A savoir que dans mon cas, chaque application n'a rien à voir avec une autre.
Autre avantage du sous-domaine, il paraît que Google apprécie, donc bon pour la SEO.
Je sais pas si c'est la meilleure des solutions, mais elle me convient bien.
Si vous avez des remarques à faire n'hésitez pas! merci!
Hors ligne
oups, je suis désolé, je n'avais pas fait attention à la date du message d'origine
en tout cas, je suis content que tu aies trouvé une solution, et je te confirme que les hôtes virtuels, c'est vraiment le plus propre. Utiliser des sous-domaines est également parfaitement approprié.
Hors ligne
Si c'est résolu, il faut penser à mettre un [Résolu] dans le titre.
Hors ligne
Pages: 1