Avez-vous une question? (216) 97 656 803 hajjriadh@gmail.com
News

Travailler avec .htaccess en local

Un cours complet pour maîtriser Travailler avec .htaccess en local.

0 chapitres 0 QCM Accès gratuit
  1. Objectifs

  2. Le principe :

    • Lorsqu'on travaille avec un serveur Apache (Cas très fréquent pour les serveurs sérieux sur le web ( Unix, Linux, OSX, etc.) la présence d'un fichier particulier nommé .htaccess indique au serveur que les fichiers de ce dossier et tous les sous-dossiers ne doivent pas être diffusés tout à fait librement.
    • La vérification se fait sur la base d'une identification / mot de passe ou selon le n° IP de la machine qui demande les pages.
  3. Présentation

    • Les fichiers .htaccess (ou "fichiers de configuration distribués") fournissent une méthode pour modifier la configuration du serveur au niveau d'un répertoire. Un fichier, contenant une ou plusieurs directives de configuration, est placé dans un répertoire de documents particulier, et ses directives s'appliquent à ce répertoire et à tous ses sous-répertoires.
    • Lorsque l'on développe en local avec les logiciels Wampserver sous Windows ou encore MAMP sous Max OS X, les fichiers .htaccess ne fonctionnent pas avec l’installation par défaut. Le plus souvent, le serveur renvoie un code d’erreur 500.
    • La raison est simple, le module rewrite d’Apache n’est pas activé par défaut, pour l’activer il suffit d’éditer le fichier de configuration d’Apache (httpd.conf).
  4. Test

    • Tester si .htaccess marche
      • Le moyen le plus simple de tester si Apache utilise votre fichier .htaccess, ou s'il l'ignore autrement, est de le casser intentionnellement.
      • Modifiez le fichier .htaccess, de sorte que la première ligne indique "Test".:
      Test.
      
      # Set the default handler
      DirectoryIndex index.php index.html index.htm
    • Maintenant, si vous actualisez la page dans votre navigateur, vous devriez voir une page d'erreur comme celle-ci:
    • Protéger un dossier avec un htaccess

    • Si vous voyez cette erreur, c'est vraiment bien ! Cela signifie qu'Apache analyse le fichier .htaccess et qu'il rencontre l'erreur que nous y avons mise! Jusqu'ici tout va bien!
    • Si vous ne voyez pas une "Erreur de serveur interne", votre configuration Apache ignore le fichier .htaccess et vous devez résoudre ce problème.
    • En général, Apache ignore le fichier .htaccess en raison de la configuration Apache suivante AllowOverride none.
    • Vérifiez la configuration de votre hôte virtuel et ajoutez/modifiez AllowOverride All.
  5. Sous Wampserver

    • 1° Pour protéger des pages web, il faut créer un fichier .htaccess et le déposer dans le dossier à protéger
    • 2° .Pour une protection par mot de passe, il faut en outre créer un fichier .htpasswd qui stocke tous les utilisateurs et leur mot de passe (encrypté).
    • Sous Wampserver, il se trouve dans : Program Files\wamp\bin\apache\Apache2.2.11\conf.
    • Pour activer le module rewrite, remplacez la ligne :LoadModule rewrite_module modules/mod_rewrite.so
    • Par :LoadModule rewrite_module modules/mod_rewrite.so
    • Démarche
      • D'abord: j'ai activé " rewrite_module " dans le menu apache, puis j'ai vérifié la page phpinfo et j'ai vu ce module ajouté à sa partie " Loaded Modules ".
      • Deuxièmement: j'ai vérifié le httpd.conf et apporté quelques modifications, c'est le résultat (juste les parties importantes):
      ServerRoot "c:/program Files/wamp/bin/apache/apache2.2.11"
      Listen 80
      ServerName localhost:80
      DocumentRoot "c:/program Files/wamp/www/"
      
      <Directory />
      Options FollowSymLinks
      # AllowOverride None
      # Order deny,allow
      # Deny from all
      AllowOverride all
      Order Allow,Deny
      Allow from all
      </Directory>
      
      <Directory "c:/program Files/wamp/www/">
      Options Indexes FollowSymLinks
      AllowOverride all
      Order Allow,Deny
      Allow from all
      </Directory>
      
      LoadModule alias_module modules/mod_alias.so
      LoadModule rewrite_module modules/mod_rewrite.so
    Suivant: j'ai créé un alias pour mon espace de travail. Voici le contenu de son fichier .conf:
    
    Alias /basic_test/ "e:/Projects/basic_test/"
    
    <Directory "e:/Projects/basic_test/">
    Options Indexes FollowSymLinks MultiViews
    AllowOverride all
    Order allow,deny
    Allow from all
    </Directory>
    Suivant: J'ai placé un simple "index.php" et "test.php" dans la racine de mon espace de travail et j'ai testé l'alias par ces adresses: -> " localhost / basic_test / index.php " -> " localhost / basic_test / test .php "Ils ont parfaitement fonctionné ...
    
    Enfin , j'ai ajouté un fichier ".htaccess" à la racine de mon espace de travail (à côté de index.php), et j'y ai écrit:
    
    <IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteRule ^index.php$ test.php
    </IfModule>
  6. Cliquez sur l'icône Wamp et ouvrez Apache / httpd.conf et recherchez "#LoadModule rewrite_module modules / mod_rewrite.so". Supprimez # comme ci-dessous et enregistrez-le
  7. LoadModule rewrite_module modules/mod_rewrite.so
  8. et redémarrez tous les services.