Easy-Micro

LANGAGE Langage PHP
Htaccess et PHP

PHP et le fichier htaccess

Accès répertoire

Le fichier .htaccess est un fichier de configuration du serveur Web Apache dont le contenu ecrit en PERL permet de définir des règles dans un répertoire.

Exemples : Interdire l'accès à un répertoire Contenu du fichier .htaccess situé dans le répertoire
Deny from all

Copier/coller cet exemple dans un fichier texte et nommé-le ".htaccess" (avec un point devant!). Installez ce fichier dans le répertoire qui doit &être protégé.

Empêcher le listage du contenu d'un répertoire

Pour empêcher les internautes de lister l’ensemble des fichiers contenus dans un répertoire en l'absence d'index (.cgi, .html, .php etc ….), créez un fichier .htaccess contenant la ligne ci-dessous :

Options -Indexes

Protéger un répertoire par un mot de passe

Exemple - local - dans le fichier .htaccess situé dans le répertoire

AuthName "Zone interdite"
AuthUserFile "c:/program files/easyphp5.3.0/www/stage/privee/passe.txt"
AuthGroupFile /dev/null
AuthType Basic
<limit GET POST>
require valid-user
</limit>
Installez ce fichier .htaccess dans le répertoire qui doit être protégé par mot de passe. Le contenu du fichier passe.txt (qui peut-être crypté) est du type paire de valeur nom : motdepasse (titi:password)

- La directive AuthUserFile indique le chemin (le path) du fichier de mot de passe.
- AuthGroupFile défini l'emplacement du fichier contenant les groupes d'utilisateurs autorisés.

Empêcher l'indexation du contenu d'un répertoire

Le plus simple est de créer un fichier .htaccess directement dans le répertoire concerné, et d'y mettre ceci :

Header set X-Robots-Tag "noindex"

Htaccess en local

Attention, dans le package Easyphp, pour que le fichier de configuration htaccess fonctionne en locale, dans le fichier httpd.conf (configuration / Apache) vous devez transformer la propriété de la directive AllowOverride actuellement à "none" par "All". Soit remplacer "AllowOverride None" par "AllowOverride All" (le deuxième AllowOverride rencontré suffit, soit sur <Directory "${path}/www">).

Cette modification n'est pas nécessaire avec le package Wamp. La configuration par défaut est déjà à All sur www.

Pseudo-frame : Si vous utilisez un site web de type "pseudo-frame", les fonction PHP "include" ou "require_once" sont prioritaires sur le fichier htaccess. Donc un test avec un menu ne fonctionnerais pas.

Si vous avez des problèmes d'adressage, la fonction realpath() permet de connaître le chemin d'un fichier (le path). Créez un fichier texte avec ce code: <?php echo realpath("index.php"); ?> puis placez ce fichier à la racine de votre site. Executer ensuite ce fichier "realpath.php" depuis votre navigateur.

Personnaliser les messages d'erreurs (404 et 403)

Exemple dans le fichier .htaccess situé à la racine du site

ErrorDocument 403 /erreurs/403.php
ErrorDocument 404 /erreurs/404.php

Redirection par URL Rewriting

Exemple : dans le fichier .htaccess situé à la racine du site :
RedirectPermanent /?page=probleme https://www.easy-micro.com/index.php?page=newprobleme

URL Rewriting

Exemple de réécriture d'adresse
RewriteEngine On
RewriteRule ^planning$ /index.php?mapage=8 [L]
RewriteRule ^planning\.php$ /index.php?mapage=8 [L]

Attention, le nom utilisé (ci-dessus, planning) ne doit pas être un nom de dossier existant. Cette technique permet d'utiliser l'adresse https://www.easy-micro.org/planning ou https://www.easy-micro.org/planning.php qui sont deux adresses qui n'existe pas


< Page précédente LANGAGE PHP Page suivante >