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

Apache Discussion :

[.htaccess] urlrewriting + router php = redirection


Sujet :

Apache

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 3
    Par défaut [.htaccess] urlrewriting + router php = redirection
    Bonsoir,
    Je suis en train de dev un cms en php, j'utilise une architecture mvc et un systeme de routage. Depuis quelques jours j'essais de creer une page 404 perso sans succes

    La RewriteRule fonctionne et le routeur affiche bien une erreur 404 lorsque ma requete GET n'existe pas, mais lorsque j'entre une URL (une page plus precisement) qui n'existe pas, la page index n'est pas appelee.

    Voici le pseudo-code du router:
    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
     
    if (file_exists(target)) {
        if (is_readable(target)) {
     
            include target_file
     
            if (class_exists(target_class)) {
     
                new target()
     
            } else {
                die('target controller class does not exist.');
            }
        } else {
            die('target controller file not readable.');
        }
    }else{
        include 404
        new 404()
    }
    La vue de la page 404:
    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
     
    <?php
        header($_SERVER["SERVER_PROTOCOL"]." 404 Not Found");
        header('Content-type: text/html; charset=utf-8');
    ?>
    <!DOCTYPE html>
    <html>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
            <title>404</title>
        </head>
        <body>
            <h1>404:</h1>
            <p>L&rsquo;URL demand&eacute;e <strong><?php echo($data['request']); ?></strong> est introuvable sur ce serveur.</p>
        </body>
    </html>
    Le .htaccess:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Options +FollowSymlinks
    RewriteEngine On
    RewriteRule ^([_a-z0-9]*)$ index.php?$1 [L]
     
    ErrorDocument 404 /index.php?error404
    Si je remplace par ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ErrorDocument 404 http://localhost/xml_template_mvc/error404
    tout fonctionne, sauf que bien sur appache me redirige avec un code 302 (comme c'est ecrit dans la doc) et ce n'est evidement pas ce que je cherche!

    P.S : Je m'excuse pour les accents je suis sur un qwerty.

  2. #2
    Membre Expert Avatar de Marc3001
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2008
    Messages
    829
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Février 2008
    Messages : 829
    Par défaut
    Citation Envoyé par Hive.42 Voir le message
    La RewriteRule fonctionne et le routeur affiche bien une erreur 404 lorsque ma requete GET n'existe pas, mais lorsque j'entre une URL (une page plus precisement) qui n'existe pas, la page index n'est pas appelee.
    J'ai pas tout compris. Ca marche pas quand tu tapes une url qui n’existe pas ? Dans quel cas ça marche alors ?

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 3
    Par défaut
    Ce que je veux dire par la c'est que mon routeur php et la RewriteRule fonctionnent bien :
    http://monsite/index?home -> Renvois sur la page home
    http://monsite/home -> Renvois sur la page home

    http://monsite/index?existe_pas -> 404 perso (/index.php?error404)
    http://monsite/existe_pas -> 404 perso (/index.php?error404)

    Par contre si je fais :
    http://monsite/existe_pas.php -> 404 par default
    http://monsite/existe_pas.html -> 404 par default

    Je suis un peu perdu

    EDIT : J'ai trouve le probleme...
    Je suis dans un sous dossier du coup l'adresse de ma page 404 n'etait pas la bonne. Je vais me pendre, je reviens..

  4. #4
    Membre Expert Avatar de Marc3001
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2008
    Messages
    829
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Février 2008
    Messages : 829
    Par défaut
    Petite question, tu utilises un fichier .htaccess car tu es chez sur un hébergement mutualisé ?
    J'ai vu pas mal de soucis de ce genre sur des hébergements mutu.

    Sinon, tu n'as pas un ErrorDocument 404 default qui traîne quelquepart (j'y crois pas trop...).

    Enfin si aucun des 2 j'vois pas trop....

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 3
    Par défaut
    Non je suis sur un serveur local, mais la version finale du site sera sur un mutualise.

    P.S : J'ai resolu le probleme (voir plus haut).

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

Discussions similaires

  1. Redirection .htaccess vers script php
    Par yassoux dans le forum Apache
    Réponses: 2
    Dernier message: 22/04/2013, 14h27
  2. Réponses: 1
    Dernier message: 17/01/2013, 21h19
  3. Style Switcher CSS/PHP > redirection avec 2 includes
    Par swaag dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 11/12/2006, 15h50
  4. [Conception] Passage De Variable Avec Post Via Un Script Php + Redirection
    Par british_toons dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 26/09/2006, 16h57
  5. [Sécurité] htaccess/htpasswd avec PHP
    Par Belegkarnil dans le forum Langage
    Réponses: 2
    Dernier message: 24/04/2006, 21h03

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