Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Serveurs (Apache, IIS,...) > Apache
Apache Forum d'entraide Apache. Avant de poster : Cours Apache, FAQ Apache
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 07/02/2011, 20h25   #1
Candidat au titre de Membre du Club
 
Homme Mathias Léonard
Développeur Web
Inscription : janvier 2009
Messages : 25
Détails du profil
Informations personnelles :
Nom : Homme Mathias Léonard
Localisation : Belgique

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

Informations forums :
Inscription : janvier 2009
Messages : 25
Points : 10
Points : 10
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 :
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 :
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.
leom4t est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/02/2011, 21h31   #2
Rédacteur/Modérateur
 
Avatar de _Mac_
 
Inscription : août 2005
Messages : 8 278
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 8 278
Points : 8 565
Points : 8 565
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
_Mac_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/02/2011, 21h48   #3
Candidat au titre de Membre du Club
 
Homme Mathias Léonard
Développeur Web
Inscription : janvier 2009
Messages : 25
Détails du profil
Informations personnelles :
Nom : Homme Mathias Léonard
Localisation : Belgique

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

Informations forums :
Inscription : janvier 2009
Messages : 25
Points : 10
Points : 10
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 :
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à...
leom4t est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/02/2011, 22h03   #4
Rédacteur/Modérateur
 
Avatar de _Mac_
 
Inscription : août 2005
Messages : 8 278
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 8 278
Points : 8 565
Points : 8 565
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
_Mac_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/02/2011, 22h32   #5
Candidat au titre de Membre du Club
 
Homme Mathias Léonard
Développeur Web
Inscription : janvier 2009
Messages : 25
Détails du profil
Informations personnelles :
Nom : Homme Mathias Léonard
Localisation : Belgique

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

Informations forums :
Inscription : janvier 2009
Messages : 25
Points : 10
Points : 10
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 :
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 :
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.
leom4t est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/02/2011, 22h53   #6
Rédacteur/Modérateur
 
Avatar de _Mac_
 
Inscription : août 2005
Messages : 8 278
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 8 278
Points : 8 565
Points : 8 565
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
_Mac_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/02/2011, 23h03   #7
Candidat au titre de Membre du Club
 
Homme Mathias Léonard
Développeur Web
Inscription : janvier 2009
Messages : 25
Détails du profil
Informations personnelles :
Nom : Homme Mathias Léonard
Localisation : Belgique

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

Informations forums :
Inscription : janvier 2009
Messages : 25
Points : 10
Points : 10
Désolé, j'oublie d'être précis

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

Ce que j'ai dans les log :
Code :
[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 :
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.
leom4t est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h43.


 
 
 
 
Partenaires

Hébergement Web