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 et RewriteRule


Sujet :

Apache

  1. #1
    Membre régulier
    Homme Profil pro
    Etudiant
    Inscrit en
    Octobre 2011
    Messages
    305
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 305
    Points : 115
    Points
    115
    Par défaut .htaccess et RewriteRule
    Le bien bonjour à tous, j'essaye de créer un fichier .htaccess pour router mes url

    voilà le contenu du fichier .htaccess


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    RewriteEngine on
    RewriteRule ^([a-zA-Z0-9\-\_\/]*)$ index.php?p=$1
    et j'essaye d'afficher l'url

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $params = explode("/",$_GET['p']);
    print_r($params);
    l'erreur

    Undefined index: p in /home/stade13/workspace/MVC/index.php
    il reconnait pas le p

    Merci d'avance

  2. #2
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    ça veut dire que ton URL n'est pas matchée par la regexp de la RewriteRule.

  3. #3
    Membre régulier
    Homme Profil pro
    Etudiant
    Inscrit en
    Octobre 2011
    Messages
    305
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 305
    Points : 115
    Points
    115
    Par défaut
    Citation Envoyé par Benjamin Delespierre Voir le message
    ça veut dire que ton URL n'est pas matchée par la regexp de la RewriteRule.

    Et comment je fais pour que sa soit matchée?

  4. #4
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    Est ce que je sais moi, c'est ton appli après tout

    Si tu veux que tout passe par index.php (front controller), tu peux utiliser ces règles:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <IfModule mod_rewrite.c>
        RewriteEngine On
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !favicon.ico$
        RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
    </IfModule>

  5. #5
    Membre régulier
    Homme Profil pro
    Etudiant
    Inscrit en
    Octobre 2011
    Messages
    305
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 305
    Points : 115
    Points
    115
    Par défaut
    Citation Envoyé par Benjamin Delespierre Voir le message
    Est ce que je sais moi, c'est ton appli après tout

    Si tu veux que tout passe par index.php (front controller), tu peux utiliser ces règles:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <IfModule mod_rewrite.c>
        RewriteEngine On
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !favicon.ico$
        RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
    </IfModule>

    sa ne marche pas aussi, c'est pas une application en fin c'est juste un index.php et htaccess y a rien de compliqué mais sa ne marche pas

  6. #6
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    T'as bien remarqué que dans l'exemple que je t'ai donné le paramètre s'appelle url au moins ?

  7. #7
    Membre régulier
    Homme Profil pro
    Etudiant
    Inscrit en
    Octobre 2011
    Messages
    305
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 305
    Points : 115
    Points
    115
    Par défaut
    Citation Envoyé par Benjamin Delespierre Voir le message
    T'as bien remarqué que dans l'exemple que je t'ai donné le paramètre s'appelle url au moins ?

    Oui oui

  8. #8
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    Alors c'est très curieux car c'est celui que j'utilise depuis plus d'un an

    T'as le mod_rewrite actif au moins ?

  9. #9
    Membre régulier
    Homme Profil pro
    Etudiant
    Inscrit en
    Octobre 2011
    Messages
    305
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 305
    Points : 115
    Points
    115
    Par défaut
    Citation Envoyé par Benjamin Delespierre Voir le message
    Alors c'est très curieux car c'est celui que j'utilise depuis plus d'un an

    T'as le mod_rewrite actif au moins ?

    ee non, comment l'activé ? !

  10. #10
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    :epic_facepalm:

    Mais comment voulais-tu que ça marche alors

    Bref
    - Linux a2enmod
    - WAMP menu > apache > modules > mod_rewrite

  11. #11
    Membre régulier
    Homme Profil pro
    Etudiant
    Inscrit en
    Octobre 2011
    Messages
    305
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 305
    Points : 115
    Points
    115
    Par défaut
    Citation Envoyé par Benjamin Delespierre Voir le message
    :epic_facepalm:

    Mais comment voulais-tu que ça marche alors

    Bref
    - Linux a2enmod
    - WAMP menu > apache > modules > mod_rewrite
    Je travaille sous ubuntu j'ai activé avec a2enmod rewrite.load

    et j'ai rajouté

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <ifModule mod_rewrite.c>
    RewriteEngine On
    </ifModule>
    dans apache2.conf

    Mais sa ne marche toujours pas

  12. #12
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    T'as redémarré Apache ?
    $ service httpd restart

  13. #13
    Membre régulier
    Homme Profil pro
    Etudiant
    Inscrit en
    Octobre 2011
    Messages
    305
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 305
    Points : 115
    Points
    115
    Par défaut
    Citation Envoyé par Benjamin Delespierre Voir le message
    T'as redémarré Apache ?
    $ service httpd restart
    Oui

    sudo /etc/init.d/apache2 restart

  14. #14
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    Alors je vois pas... Je vais déplacer la discussion vers le forum Apache pour que tu obtienne l'avis de personnes plus compétentes que moi.

  15. #15
    Membre régulier
    Homme Profil pro
    Etudiant
    Inscrit en
    Octobre 2011
    Messages
    305
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 305
    Points : 115
    Points
    115
    Par défaut
    Citation Envoyé par Benjamin Delespierre Voir le message
    Alors je vois pas... Je vais déplacer la discussion vers le forum Apache pour que tu obtienne l'avis de personnes plus compétentes que moi.
    Ok je te remercie

  16. #16
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    Dans la configuration d'Apache, il faut mettre AllowOverride all pour le <Directory> de ton document root. Si tu as un none à la place de all, ton .htaccess est totalement ignoré.

  17. #17
    Membre régulier
    Homme Profil pro
    Etudiant
    Inscrit en
    Octobre 2011
    Messages
    305
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 305
    Points : 115
    Points
    115
    Par défaut
    Citation Envoyé par _Mac_ Voir le message
    Dans la configuration d'Apache, il faut mettre AllowOverride all pour le <Directory> de ton document root. Si tu as un none à la place de all, ton .htaccess est totalement ignoré.
    Voilà ce que j'ai rajouté dans apache2.conf

    <Directory /var/www/MVC >
    AllowOverride all
    options FollowSymLinks
    </Directory>

    maintenant c'est une erreur 404

  18. #18
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    Avec quelle URL et quel .htaccess ?

  19. #19
    Membre régulier
    Homme Profil pro
    Etudiant
    Inscrit en
    Octobre 2011
    Messages
    305
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 305
    Points : 115
    Points
    115
    Par défaut
    Citation Envoyé par _Mac_ Voir le message
    Avec quelle URL et quel .htaccess ?
    Je m'excuse pour l'absence, mon htaccess


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    RewriteEngine on
    RewriteRule ^([a-zA-Z0-9-_]*)/?$ /index.php?p=$1
    et mon url

    http://localhost/MVC/index.php

    voilà mon l'erreur
    Notice: Undefined index: p in /home/stade13/workspace/MVC/index.php on line 11 Call Stack: 0.0002 330000 1. {main}() /home/stade13/workspace/MVC/index.php:0 Array ( [0] => )
    et voilà mon code php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php $params = explode('/',$_GET['p']);
     
    print_r($params); ?>
    rien de spécial

  20. #20
    Membre régulier
    Homme Profil pro
    Etudiant
    Inscrit en
    Octobre 2011
    Messages
    305
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 305
    Points : 115
    Points
    115
    Par défaut
    Citation Envoyé par stade13 Voir le message
    Je m'excuse pour l'absence, mon htaccess


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    RewriteEngine on
    RewriteRule ^([a-zA-Z0-9-_]*)/?$ /index.php?p=$1
    et mon url

    http://localhost/MVC/index.php

    voilà mon l'erreur
    Notice: Undefined index: p in /home/stade13/workspace/MVC/index.php on line 11 Call Stack: 0.0002 330000 1. {main}() /home/stade13/workspace/MVC/index.php:0 Array ( [0] => )
    et voilà mon code php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php $params = explode('/',$_GET['p']);
     
    print_r($params); ?>
    rien de spécial
    sa marche, j'ai modifier mon htaccess

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    RewriteEngine on
    RewriteRule ^([a-zA-Z0-9\-\_\/]*)$ index.php?p=$1
    Je vous remercie pour votre aide

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 26/02/2010, 10h15
  2. [.htaccess] RewriteRule ne fonctionne pas
    Par steelidol dans le forum Apache
    Réponses: 2
    Dernier message: 23/02/2009, 19h31
  3. htaccess rewriterule et virtual hosts
    Par chico_du_33 dans le forum Apache
    Réponses: 3
    Dernier message: 15/09/2008, 14h11
  4. [htaccess] ErrorDocument + RewriteRule
    Par Tchupacabra dans le forum Apache
    Réponses: 3
    Dernier message: 13/12/2007, 10h53
  5. [.htaccess] utiliser '#' dans un RewriteRule
    Par Are-no dans le forum Apache
    Réponses: 2
    Dernier message: 14/08/2006, 18h27

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