2
701

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 8
  2.  
  3. Options -Indexes
  4. Options +FollowSymLinks
  5.  
  6. ErrorDocument 403 /index.php
  7. ErrorDocument 404 /index.php

La ligne 1 indique à Apache quelle version de PHP doit exécuter le code du site web. iZend est validé avec PHP 8.4 mais fonctionne toujours avec PHP 5.3.

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

Les lignes 6 et 7 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|svg|mp3|mp4|m4v|m4a|ogg|webm|zip|jar)$ - [NC,L]
  14. RewriteRule ^(.*)$ index.php [QSA,L]

La ligne 9 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 11 à 13 et 15 à 17 renvoient toutes les requêtes en HTTP et en HTTPS au domaine sitename.net vers le domaine complet www.sitename.net.

La ligne 19 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 20 à 22 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 21. 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 un accès en HTTPS, remplacez les lignes :

  1. RewriteCond %{HTTP_HOST} ^sitename\.net [NC]
  2. RewriteRule ^(.*)$ http://www.sitename.net/$1 [R=301,L]

par la ligne :

  1. RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

Supprimez la ligne :

  1. RewriteCond %{HTTPS} on
index.php
  1. define('ROOT_DIR', __DIR__);

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

  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

Diagramme général, bootstrap, engine, trace

Commentaires

Votre commentaire :
[p] [b] [i] [u] [s] [quote] [pre] [br] [code] [url] [email] strip aide 2000

Entrez un maximum de 2000 caractères.
Améliorez la présentation de votre texte avec les balises de formatage suivantes :
[p]paragraphe[/p], [b]gras[/b], [i]italique[/i], [u]souligné[/u], [s]barré[/s], [quote]citation[/quote], [pre]tel quel[/pre], [br]à la ligne,
[url]http://www.izend.org[/url], [url=http://www.izend.org]site[/url], [email]izend@izend.org[/email], [email=izend@izend.org]izend[/email],
[code]commande[/code], [code=langage]code source en c, java, php, html, javascript, xml, css, sql, bash, dos, make, etc.[/code].