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 :

Directive RewriteRule qui ne fonctionne pas dans mon virtual host


Sujet :

Apache

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2019
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2019
    Messages : 42
    Par défaut Directive RewriteRule qui ne fonctionne pas dans mon virtual host
    Bonjour,

    J’ai configuré le Virtual Host suivant dans Apache24\conf\extra\httpd-vhosts.conf :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <VirtualHost *:80>
        ServerAdmin mail@gmail.fr
        ServerName site.fr
        DocumentRoot "C:\Base_test\public"
        ErrorLog "C:\Base_test\error.log"
        LogLevel debug rewrite:trace6
     
        <Directory "C:\Base_test\public">
            Options -Indexes
            AllowOverride All
            Require all granted  
        </Directory>
    </VirtualHost>
    Et j'ai créé le fichier .htaccess suivant dans C:\Base_test\public :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ index.php [QSA,L]
    Tout fonctionne comme prévu, sur Chrome quand je vais sur site.fr/bidule/ ça me renvoie bien sur le fichier index.php.

    Mais sur la documentation d’Apache, on peut lire :
    « Les fichiers .htaccess ne doivent être utilisés que si vous n'avez pas accès au fichier de configuration du serveur principal. L'utilisation des fichiers .htaccess ralentit le fonctionnement de votre serveur http Apache. Il est toujours préférable de définir les directives que vous pouvez inclure dans un fichier .htaccess dans une section Directory, car elles produiront le même effet avec de meilleures performances.»
    Du coup j’ai supprimé le fichier .htaccess et j’ai intégré son contenu dans mon VirtualHost :

    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
    <VirtualHost *:80>
        ServerAdmin mail@gmail.fr
        ServerName site.fr
        DocumentRoot "C:\Base_test\public"
        ErrorLog "C:\Base_test\error.log"
        LogLevel debug rewrite:trace6
     
        <Directory "C:\Base_test\public">
            Options -Indexes
            AllowOverride All
            Require all granted  
            <IfModule mod_rewrite.c>
                RewriteEngine On
                RewriteCond %{REQUEST_FILENAME} !-f
                RewriteRule ^(.*)$ index.php [QSA,L]
            </IfModule>
        </Directory>
    </VirtualHost>
    Et là ça ne fonctionne plus, quand je vais sur site.fr/bidule/, ça me dit :
    « Not found. The requested URL was not found on this server. »
    Dans le fichier error.log, j’ai l’erreur suivante :
    AH00128: File does not exist: C:/Base_test/public/bidule/
    Je précise que j’ai bien décommenté le module rewrite_module dans httpd.conf.

    Voilà je vous remercie pour votre aide.

  2. #2
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2019
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2019
    Messages : 42
    Par défaut
    Bon en fait après chaque modification de mon virtualhost je faisais httpd -k restart sauf que je me suis rendu compte que le serveur de redémarrait pas. Il faut passer par les services Windows (Touche Windows +R).

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

Discussions similaires

  1. Bouton qui ne fonctionne pas dans mon appli
    Par Creepy78 dans le forum NetBeans
    Réponses: 3
    Dernier message: 28/02/2014, 18h29
  2. function javascript qui ne fonctionne pas dans la balise <body>
    Par typikal dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 01/04/2008, 16h45
  3. Réponses: 6
    Dernier message: 22/05/2007, 09h55
  4. [NASM] Int 21h qui ne fonctionne pas sur mon mini OS
    Par andromeda dans le forum Assembleur
    Réponses: 4
    Dernier message: 07/04/2007, 18h03
  5. [FTP] fopen qui ne fonctionne pas dans tous les contextes ..
    Par Christophe Charron dans le forum Langage
    Réponses: 6
    Dernier message: 15/06/2006, 10h25

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