Page 1 sur 1
[Wamp] Problème Réecriture d'adresse / fichiers locaux
Posté : 28 nov. 2010, 15:46
par momox
Bonjour,
je rencontre un petit problème dans mon dévellopement actuel.
Ma réecriture d'url se présente comme suit, ayant un routeur personnalisé dans mon framework:
Code : Tout sélectionner
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [QSA,L]
Mon racine se présente comme suit:

Hors, quand j'appelle
http://localhost/test, au lieu d'être redirigé vers mon routeur, je suis dirigé vers test.php.
Est-ce un comportement normal ? Car même en appellant
http://localhost/test/foo je tombe sur test.php.
Problème de configuration apache ?
Merci d'avance.

Re: [Wamp] Problème Réecriture d'adresse / fichiers locaux
Posté : 28 nov. 2010, 18:41
par devlop78
J'ai cette difficulté de comprendre ... Mais regarde si le module rewrite est activé coté Apache ... car WampServer ne l'active pas par défaut il me semble
Re: [Wamp] Problème Réecriture d'adresse / fichiers locaux
Posté : 29 nov. 2010, 13:20
par momox
Justement, le module rewrite est activé, sinon j'aurais une belle erreur 500.
Re: [Wamp] Problème Réecriture d'adresse / fichiers locaux
Posté : 29 nov. 2010, 19:23
par devlop78
OOOo mince. J'avais pas bien regardé. Mais bien sûr qu'il t'ouvre test.php puisque celui-ci existe. Selon la configuration de Apache et/ ou Php (en vérité, je ne sais pas exactement d'ou ça vient), "monFichier" appelera si existe le dossier "monFichier", puis le fichier "monFichier". Il existe aussi des astuces pour faire de l'url rewriting sans le module d'apache avec ce genre de chose (par exemple monFichier/machin).
Dans ton cas, ça marche et c'est relativement normal. C'est certainement désactivable, c'est une option il me semble. Si tu veux faire une redirection même si le fichier et/ou dossier existe, tu dois enlever la condition -f et -d.
Cordialement,
Re: [Wamp] Problème Réecriture d'adresse / fichiers locaux
Posté : 30 nov. 2010, 12:05
par momox
Justement, je veux qu'il ne redirige vers mon routeur que si le fichier existe...
Comment désactiver le fait qu'il ne prenne pas en compte l'extension ?
Re: [Wamp] Problème Réecriture d'adresse / fichiers locaux
Posté : 30 nov. 2010, 12:53
par devlop78
Je sais pas ce que c'est que cette histoire de routeur, mais j'ai peur que le terme soit mal approprié.
Peut-être Options FollowSymLinks
Re: [Wamp] Problème Réecriture d'adresse / fichiers locaux
Posté : 30 nov. 2010, 13:12
par momox
Mon routeur c'est le script qui va decrypter et orienter les requetes vers la bonne partie de mon programme php.
FollowSymLinks c'est pour prendre en compte les liens symboliques sous unix, je l'ai laissé pour ne pas galérer quand je vais transferer sur mon serveur.
Re: [Wamp] Problème Réecriture d'adresse / fichiers locaux
Posté : 30 nov. 2010, 13:45
par devlop78
Oui ... je ne sais pas. Moi j'ai un seul fichier qui est index.php et qui régit tout (c'est l'appel du controleur principal). Les autres fichiers, je les mets dans un autre dossier, où il n'y aura pas de confusion avec une réecriture, et que je mets en deny from all. Bref, c'est une présentation simplifiée, mais ne te compliques-tu pas la vie ?
Re: [Wamp] Problème Réecriture d'adresse / fichiers locaux
Posté : 04 déc. 2010, 00:16
par Cyrano
Salut,
vérifie dans le fichier httpd.conf si pour le répertoire racine (directory root) la directive
AllowOverride est à «
None » ou «
All » et selon le cas permet ou non la surcharge des directives via un fichier .htaccess. Si elle est à «
None », remplace par All, enregistre et redémarre ton serveur Apache.
Normalement tous les appels vers le répertoire de ton application devraient rediriger vers le fichier index.php qui lui-même devra contenir le code gérant le routage.
Il manque toutefois une ligne dans ton fichier .htaccess :
Où « X/www » correspond à la racine de ton serveur, le chemin vers ton répertoire /www.e
Re: [Wamp] Problème Réecriture d'adresse / fichiers locaux
Posté : 05 déc. 2010, 02:45
par momox
Je viens de trouver mon erreur...
J'avais mis l'option Multiviews sur le repertoire virtuel...
Ce qui engendrait ce comportement...
Voir
http://httpd.apache.org/docs/2.0/fr/con ... multiviews