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 :

Erreur 404 sur 1&1 [ZF 1.9]


Sujet :

MVC PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 33
    Par défaut Erreur 404 sur 1&1
    Hello,

    Après avoir traversé la création de mon premier projet sous zf, beaucoup grâce à vous soit dit en passant , je me décide à le lancer en production; Mon hébergeur est 1&1 et je réecris mon .htaccess comme indiqué dans leur faq :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    SetEnv APPLICATION_ENV production
    AddType x-mapp-php5 .php
     
    Options +FollowSymLinks
    # Active la réécriture des adresses
    RewriteEngine On
    # Si la requête correspond à un fichier standard dont la taille est supérieure à 0 ...
    RewriteCond %{REQUEST_FILENAME} -s [OR]
    # ... ou à un lien symbolique
    RewriteCond %{REQUEST_FILENAME} -l [OR]
    # ... ou à un répertoire
    RewriteCond %{REQUEST_FILENAME} -d
    # ... on laisse la requête tel quelle (le tiret veut dire pas de substitution)
    # Drapeau NC (No Case) : comparaison insensible à la casse
    # Drapeau L (Last) : ne pas interpréter les règles suivantes
    RewriteRule ^.*$ - [NC,L]
    # Sinon, on redirige vers index.php 
    RewriteRule ^.*$ index.php [NC,L]
    je paramètre aussi le dossier de lancement en désignant public comme base de départ et je teste ....

    ET là, je ne comprends pas puisque ma page d'accueil s'affiche avec mes images et mon css mais je n'ai accès à aucune autre action de mon controller index et le site me renvoie une erreur 404 sur tous mes liens...

    Cela fait quelques heures que je recherche la solution mais je ne vois pas ou est le problème puisque je me suis assuré de la version de PhP et que j'ai l'impression qu'à la première requête (celle de la page d'erreur), la redirection se fait sur tous les répertoires impliqués pour afficher ma page

    Un conseil ? une idée ? une solution ?

    Merci d'avance

  2. #2
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 679
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 679
    Par défaut
    essaye de rajouter un slash comme ça, certains hébergeurs comme OVH ont en besoin :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule ^.*$ /index.php [NC,L]

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 33
    Par défaut
    Merci pour cette idée mais elle ne résous pas le problème.

    Dans l'admin de 1&1 je fais pointer l'adresse vers mon dossier public ou se trouve mon .htaccess.
    Ma feuille de style et mes images sont chargés quand je tombe sur ma page d'index pourtant ...

    Je cherches, je cherches ...

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 33
    Par défaut

    J'ai tout essayé :

    1 - Rajouter RewriteBase /public
    2 - Rajouter RewriteBase public/

    Mixé avec /index.php ou index.php selon les cas, ce qui fait guère que 4 possibilités.

    Quand j'enlève du fichier toutes les lignes concernant la redirection, ma page index reste accessible grâce à l'alias crée.
    J'en déduis que ma règle d'écriture n'est jamais pris en compte.
    J'enlève les conditions au dessus pour voir si elles bloquent ma règle, et je me retrouve alors avec une erreur 500 ....

    Mystère et boules de gommes

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 33
    Par défaut
    J'avance

    Si je rentre : http://monsite.com/index.php/controller/action ma page se charge sans les css et images et c'est une histoire de baseUrl dans le ZF, je pense;

    Si je rentre : http://monsite.com/controller/action ma page ne s'affiche pas


    Donc l'url rewriting fonctionne et il ne me reste qu'à me débarrasser de "index.php" dans l'url qui fonctionne et je vais lire un tuto ...

    Merci

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 33
    Par défaut
    Bon, c'est encore pire que ce que je croyais

    J'ai modifié mon .htaccess de manière à le tester sérieusement donc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    SetEnv APPLICATION_ENV production
    AddType x-mapp-php5 .php
    Options +FollowSymLinks
    RewriteEngine On
     
    RewriteCond %{REQUEST_FILENAME} -s [OR]
    RewriteCond %{REQUEST_FILENAME} -l [OR]
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^.*$ - [NC,L]
     
    //cette ligne va récupérer la fin de l'url et la transmettre en utilisant la méthode get à index.php
    RewriteRule  ^(.*)$ /index.php?p=$1 [NC,L]
    quand je teste en utilisant des noms qui ne sont pas ceux de mes controllers j'ai bien une redirection qui se fait et le die($_GET['p']); présent au début de mon fichier public/index.php me fait sortir du code et m'affiche le reste de mon url

    Donc mon url rewriting marche c'est sur !!!

    quand je teste le nom d'un controller suivi du nom d'une action j'obtiens ... ma page 404 .... sans que le die est interrompu la page

    Et alors là ....

  7. #7
    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
    Là il y a quelque chose que je ne suis pas.

    Si tu remets ton .htaccess du début (sans le ?p=$1), et que tu remplaces ton fichier index.php par celui-ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <?php
    echo 'la redirection fonctionne !';
    Peux-tu confirmer que ce texte s'affiche quelque soit l'adresse saisie (tant que l'adresse ne correspond pas à un fichier ou un répertoire du dossier public) ?

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 33
    Par défaut
    Hello,

    merci pour le coup de main

    Bon, j'ai fait comme demandé, j'ai remis le premier .htaccess, j'ai remplacé mon index.php exactement par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <?php
    echo 'la redirection fonctionne !';
    Et j'ai ces comportements :

    quand je saisie /controlleur/action => 404 not found
    quand je saisie /pasControlleur/pasAction => 'la redirection fonctionne !'
    quand je saisie /controlleur/pasAction => 404 not found
    quand je saisie /pasControlleur/index => 'la redirection fonctionne !'

    Je vais regarder mon erreurController de ce pas ...

  9. #9
    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
    Il y a vraiment quelque chose que je ne comprend pas...

    Il n'est pas possible qu'Apache ne fasse la redirection que quand le contrôleur ou l'action n'existe pas (pour la bonne et simple raison qu'il n'a aucune info sur les contrôleurs qui existe)...

    Quelle est la structure de ton site (répertoires, emplacements des principaux fichiers : .htaccess, index.php, etc.).

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 33
    Par défaut
    ben je suis pareil, perplexe !!

    voila la structure de mon site qui, sauf erreur, est celle conseillée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    /
      /application
        /config
        /controllers
        /layouts
        /modules
          /default
            /controllers
            /forms
            /models
              /DbTable
            /view
              /Helpers
              /scripts
          Bootstrap.php
        /views
      Bootstrap.php
      /Library
      /Public  
         .htaccess
         .index.php

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

Discussions similaires

  1. [IIS6] Erreur 404 sur les scripts asp
    Par Maximil ian dans le forum IIS
    Réponses: 2
    Dernier message: 06/07/2007, 11h38
  2. Réponses: 1
    Dernier message: 05/02/2007, 13h27
  3. erreur 404 sur serveur tomcat
    Par sg.forums dans le forum Tomcat et TomEE
    Réponses: 2
    Dernier message: 30/10/2006, 13h16
  4. erreur 404 sur serveur tomcat
    Par sg.forums dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 27/10/2006, 11h11

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