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 :

[URL rewriting] Paramètre d'URL réécrit non pris en compte


Sujet :

Apache

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2009
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2009
    Messages : 24
    Points : 24
    Points
    24
    Par défaut [URL rewriting] Paramètre d'URL réécrit non pris en compte
    Bonsoir tout le monde,

    je suis confronté à un petit problème de configuration apache.
    Je désire faire du rewrite d'url. Pour cela, voici mon fichier de config de mon projet /etc/apache2/sites-enabled/dvdtek


    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
     
    <VirtualHost *:80>
            ServerAdmin Moi
            SetEnv APPLICATION_ENV "development"
            DocumentRoot /var/www/dvdtek/application/controllers/
            AccessFileName /var/www/dvdtek/application/controllers/.htaccess
            <Directory />
                    Options FollowSymLinks
                    AllowOverride None
            </Directory>
            <Directory /var/www/dvdtek/application/controllers/>
                    DirectoryIndex index.php
                    Options FollowSymLinks MultiViews
                    AllowOverride All
                    RewriteEngine On
                    Order allow,deny
                    allow from all
            </Directory>
    </VirtualHost>
    Dans mon apache.conf, j'ai bien évidemment activé le mod rewrite.
    Ensuite, voici mon fichier .htaccess
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    RewriteEngine On
    RewriteRule ^auth/recovery/([0-9]+)$    /auth/recovery.php?key=$1 [NC,L]
    Pourtant, lorsque je clique sur une url du genre http://monsite.com/auth/recovery/190...837486a4b45212, un var_dump($_GET) ne me renvoie rien du tout.

    Qu'ai-je fait de mauvais? Ou que n'ai-je pas fait?

    Merci à vous.

  2. #2
    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
    Etrange. Est-ce que c'est bien recovery.php qui est appelé et pas index.php ?

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

  3. #3
    Membre à l'essai
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2009
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2009
    Messages : 24
    Points : 24
    Points
    24
    Par défaut
    Oui c'est bien ce fichier qui est appelé, puisque le var_dump($_GET) m'affiche Par contre, j'ai un truc vraiment bizarre.
    Imaginons la ligne de mon htaccess
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule ^auth/login/$   /auth/login.php [NC,L]
    Je la supprime et essaie d'accéder à la page concernée, càd http://www.monsite.com/auth/login/
    Et bien cela fonctionne.. Logiquement ça devrait me sortir une erreur non?
    Je ne comprends pas très bien là...

  4. #4
    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
    Non, ça ne te sort pas d'erreur parce que l'option MultiViews est activée. C'était aussi le sens caché de ma première question. Peux-tu essayer en retirant MultiViews des Options de ton VH (ou bien mets un - devant : -MultiViews) ?

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

  5. #5
    Membre à l'essai
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2009
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2009
    Messages : 24
    Points : 24
    Points
    24
    Par défaut
    Il y a du mieux, en retirant l'option Multiviews (et en réglant qq autres petits trucs que j'aurais trop honte d'avouer )

    Bref, maintenant, il tient bien compte de mon fichier .htaccess, mais toujours pas de cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule ^auth/recovery/([0-9]+)$    /auth/recovery.php?key=$1 [NC,L]
    Il me sort un beau "Not found"

    Si je réduis en mettant simplement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule ^auth/recovery/$    /auth/recovery.php [NC,L]
    Il va bien me chercher la page recovery.php

    Je pense pourtant avoir bien écrit le RewriteRule.

  6. #6
    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
    Citation Envoyé par leom4t Voir le message
    Il me sort un beau "Not found"
    Avec quelle URL ?

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

  7. #7
    Membre à l'essai
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2009
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2009
    Messages : 24
    Points : 24
    Points
    24
    Par défaut
    Désolé, j'oublie d'être précis

    Donc, avec cette ligne là dans mon htaccess
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule ^auth/recovery/([0-9]+)$    /auth/recovery.php?key=$1 [NC,L]
    Et en tapant cette url :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://www.monsite.com/auth/recovery/190831998141c837486a4b452125b3409e35030f
    J'obtiens le "Not found".

    Ce que j'ai dans les log :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [Mon Feb 07 22:58:37 2011] [error] [client 192.168.0.4] File does not exist: /var/www/dvdtek/application/controllers/auth/recovery

    EDIT : Ta réponse m'a mis sur la piste. Ca m'a fait "tilt". Ma règle de réécriture n'acceptait que les chiffres. Un petit tour dans la doc, et la voici modifiée en
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule ^auth/recovery/([A-Za-z0-9]*)$    /auth/recovery.php?key=$1 [NC,L]
    Elle accepte ainsi les lettres et nombres..

    Et... TADAAAM, maintenant cela fonctionne correctement, et je peux continuer de coder toute la nuit.

    Un grand merci pour ton aide en tout cas, je ne pense pas que j'aurais trouvé tout seul le fait de retirer l'option Multiviews.

    Je mets résolu

    Encore merci.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 20/08/2013, 14h38
  2. Redirection URL Rewrité vers nouvelle URL rewrité
    Par Dlteck2000 dans le forum Apache
    Réponses: 5
    Dernier message: 20/01/2013, 18h29
  3. Réponses: 1
    Dernier message: 04/11/2010, 21h07
  4. Réponses: 1
    Dernier message: 24/05/2010, 20h45
  5. [URL rewriting] CSS non pris en compte
    Par zyongh dans le forum Apache
    Réponses: 2
    Dernier message: 16/02/2009, 12h02

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