10

Les fichiers .htaccess et index.php

Le fichier .htaccess à la racine du site configure un seul point d'entrée dans le code pour toutes les requêtes : index.php. Il redirige aussi toutes les requêtes vers le nom de domaine www. complet du site web, si nécessaire. Il peut être édité pour forcer un dialogue en HTTPS. NOTE : Le fichier .htaccess est généré à la création du site.

.htaccess
  1. SetEnv PHP_VER 7
  2. SetEnv REGISTER_GLOBALS 0
  3.  
  4. Options -Indexes
  5. Options +FollowSymLinks
  6.  
  7. ErrorDocument 403 /index.php
  8. ErrorDocument 404 /index.php

La ligne 1 indique à Apache quelle version de PHP doit exécuter le code du site web. iZend est développé en PHP 7.0 mais fonctionne en PHP 5.3. La ligne 2 tente de mettre le paramètre de PHP register_globals à false. NOTE : Ce paramètre n'est plus utilisé en PHP 7 mais un fournisseur internet peut avoir une configuration par défaut avec PHP 5 et register_globals à true.

La ligne 4 interdit la génération par Apache de la liste du contenu d'un répertoire. La ligne 5 permet de suivre les liens symboliques.

Les lignes 7 et 8 redirigent les erreurs d'accès et d'adressage vers index.php.

  1. RewriteEngine On
  2.  
  3. RewriteCond %{HTTPS} off
  4. RewriteCond %{HTTP_HOST} ^sitename\.net [NC]
  5. RewriteRule ^(.*)$ http://www.sitename.net/$1 [R=301,L]
  6.  
  7. RewriteCond %{HTTPS} on
  8. RewriteCond %{HTTP_HOST} ^sitename\.net [NC]
  9. RewriteRule ^(.*)$ https://www.sitename.net/$1 [R=301,L]
  10.  
  11. RewriteRule ^(favicon\.ico|robots\.txt|sitemap\.xml|google.*\.html) - [NC,L]
  12. RewriteCond %{REQUEST_FILENAME} -f
  13. RewriteRule /*\.(css|js|gif|png|jpe?g|ico|swf|flv|mp3|mp4|m4v|m4a|ogg|webm|zip|jar)$ - [NC,L]
  14. RewriteRule ^(.*)$ index.php [QSA,L]

La ligne 10 met le moteur de redirection en marche. IMPORTANT : Si le module rewrite d'Apache n'est pas activé, cette directive échoue. Tout le fonctionnement du site en dépend. Vérifiez dans le journal des erreurs d'Apache.

Les règles définies ligne 12 à 14 et 16 à 18 renvoient toutes les requêtes en HTTP et en HTTPS au domaine sitename.net vers le domaine complet www.sitename.net.

La ligne 20 renvoie inchangés les accès aux fichiers favicon.ico, robots.txt et sitemap.xml ainsi qu'au fichier de validation de Google.

Les lignes 21 à 23 renvoient tous les chemins d'accès sur le fichier index.php à l'exception d'une série de fichiers dont les noms désignent des fichiers CSS ou JavaScript, des fichiers contenant des images, des audios ou des vidéos, des archives.

IMPORTANT : Si le site a des liens directs vers d'autres types de fichiers, pensez à ajouter leurs extensions à la liste de la règle ligne 22. Attention aux fichiers d'export d'une base de données ou autres fichiers sensibles qui pourraient devenir accessibles et être téléchargés !

Pour forcer les requêtes en HTTPS, ajoutez les 2 règles suivantes juste après l'activation du moteur de redirection :

RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
index.php
  1. define('ROOT_DIR', dirname(__FILE__));

Définit la constante ROOT_DIR à la valeur du répertoire contenant le site web sur le système.

  1. set_include_path(ROOT_DIR . PATH_SEPARATOR . get_include_path());
  2. set_include_path(ROOT_DIR . DIRECTORY_SEPARATOR . 'includes' . PATH_SEPARATOR . get_include_path());
  3. set_include_path(ROOT_DIR . DIRECTORY_SEPARATOR . 'library' . PATH_SEPARATOR . get_include_path());

Ajoute ROOT_DIR et les répertoires library et includes au chemin de PHP.

  1. require_once 'bootstrap.php';
  2.  
  3. bootstrap();

Initialise l'environnement du programme avec bootstrap.

  1. require_once 'engine.php';
  2.  
  3. dispatch($supported_languages); // see config.inc

Charge les fonctions du moteur et lance l'exécution de la requête en passant la liste des langues supportées à dispatch.

VOIR AUSSI

bootstrap, engine, trace

Commentaires

Pour ajouter un commentaire, cliquez ici.