IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MVC PHP Discussion :

Problème htaccess ou architecture [ZF 1.10]


Sujet :

MVC PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite
    Inscrit en
    Juillet 2003
    Messages
    625
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 625
    Par défaut Problème htaccess ou architecture
    Bonjour à tous,

    j'essaye de développer un projet avec Zend et je me retrouve avec un problème d'url.

    Architecture du MVC :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    /index.php
    /.htaccess
    public/scripts/...
    /application/
    /library/
    ...
    Quand je mets mon htaccess comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    RewriteEngine On
    Options -Indexes
    RewriteCond %{REQUEST_FILENAME} -s [OR]
    RewriteCond %{REQUEST_FILENAME} -l [OR]
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^.*$ - [NC,L]
    RewriteRule ^.*$ index.php [NC,L]
    php_value default_charset 'UTF-8'
    SetEnv  APP_ENV "dev"
    Mes controllers répondent bien dans l'url mais quand je fais un _redirect sur un autre controller (home par exemple)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $url = $this->view->url(array('controller' => 'home'));
    $this->_redirect($url);
    je me retrouve avec ce genre d'url :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    string '/cdmZend/home' (length=13)
    http://localhost:8888/cdmZend/cdmZend/home
    par contre si je mets cette config :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    RewriteEngine On
    Options -Indexes
    RewriteBase /cmdZend
    RewriteCond %{REQUEST_FILENAME} -s [OR]
    RewriteCond %{REQUEST_FILENAME} -l [OR]
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^.*$ - [NC,L]
    RewriteRule ^.*$ index.php [NC,L]
    php_value default_charset 'UTF-8'
    SetEnv  APP_ENV "dev"
    Mon url est bonne mais j'ai une erreur 404

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://localhost:8888/cdmZend/home
    J’espère avoir été assez clair, je tourne en rond !!

    Merci à vous !

  2. #2
    Membre Expert
    Avatar de Eusebe
    Inscrit en
    Mars 2006
    Messages
    1 992
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 992
    Par défaut
    Bonjour,

    Par curiosité, pourquoi ne pas utiliser l'architecture par défaut du Framework ?
    Tu ne peux pas modifier la racine de ton site web ?

    A quoi correspond le répertoire cmdZend ? C'est la racine de ton site (celui qui contient le fichier index.php et les répertoires public, application,...) ?

  3. #3
    Membre émérite
    Inscrit en
    Juillet 2003
    Messages
    625
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 625
    Par défaut
    Oui, cdmZend est le nom de mon projet et par défaut c'est vrai que index.php et .htaccess se situe dans /public mais j'avais l'url htt://localhost/cdmZend/public/ et je voulais http://localhost/cdmZend

    je n'ai pas su garder public/index.php...

    mais je peux revenir à une arborescence plus classique seulement si j'arrive à avoir une url http://localhost/cdmZend

  4. #4
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut
    donc si on tape l'adresse http://localhost:8888/cdmZend/home, tu nous garantit que tu as bien un controller HomeController avec une méthode indexAction, ainsi que le vue /application/views/scripts/home/index.phtml ?

    De même dans ton Apache as tu mis le Alloweride à All ?

  5. #5
    Membre Expert
    Avatar de Eusebe
    Inscrit en
    Mars 2006
    Messages
    1 992
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 992
    Par défaut
    Pour que http://localhost/cdmZend pointes sur le répertoire public, tu peux créer un alias.

    Mais le mieux est encore la création d'un hôte virtuel. Ca te permettrait d'accéder à ton site avec une adresse cdmzend.localhost par exemple.

    Pour ça, il faut ajouter quelque chose comme ça dans ton httpd.conf :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <VirtualHost *:80>
        DocumentRoot "/var/www/html/cmdZend/public"
        ServerName cmdzend.localhost
        <Directory "/var/www/html/cmdZend/">
            AllowOverride All
            Order allow,deny
            Allow from all
        </Directory>
    </VirtualHost>
    Il faut alors aussi ajouter dans ton fichier hosts une ligne pour faire pointer cmdzend.localhost vers 127.0.0.1

  6. #6
    Membre émérite
    Inscrit en
    Juillet 2003
    Messages
    625
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 625
    Par défaut
    yes en fait c'est ce que j'avais fait mais quelques trucs n'ont pas été faits.

    1. activer le mod_rewrite d'apache 2
    2. Autoriser l'exécution d'htaccess dans apache 2

    J'ai remis index.php et htaccess dans public et j'ai modifié le vhost en mettant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DocumentRoot "/var/www/cmdZend/public"
    Merci à vous !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème Htaccess non interprété
    Par nazoreen dans le forum Apache
    Réponses: 8
    Dernier message: 16/11/2006, 22h09
  2. [Apache] Problème Htaccess et Wamp
    Par Invité dans le forum Apache
    Réponses: 2
    Dernier message: 12/02/2006, 12h24
  3. problème htaccess
    Par grinder59 dans le forum Apache
    Réponses: 2
    Dernier message: 03/02/2006, 09h52
  4. [ Problème ] .htaccess qui ne marche pas "partout"
    Par nnet_mathieu dans le forum Apache
    Réponses: 8
    Dernier message: 22/11/2005, 19h34
  5. problème .htaccess et acces à phpmyadmin
    Par bris dans le forum Apache
    Réponses: 2
    Dernier message: 15/11/2005, 13h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo