Skip to content

Instantly share code, notes, and snippets.

@aliastim
Last active May 5, 2020 13:41
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save aliastim/1b10f10b08a70a01fee8e4a5d9f79f2e to your computer and use it in GitHub Desktop.
Save aliastim/1b10f10b08a70a01fee8e4a5d9f79f2e to your computer and use it in GitHub Desktop.

🔱 Paramétrage des fichiers sources d'un site

Nous allons voir ici que certains fichiers sources sont indispensables pour mieux optimiser un site web. Nous allons voir qu'il est simple de mieux référencer son site, de le passer en https, de le sécuriser davantage et de paramètrer ses redirections et ses pages d'erreurs.

.htaccess

À quoi sert-il ?

Le .htaccess est un fichier que l'on ajoute dans le dossier source de son site. Celui-ci a pour objectif de donner des informations au serveur. Il va permettre de faire des redirections, de mettre son site en maintenance, de protéger une zone réservée aux administrateurs ou encore de paramétrer son site en https.

Mettre son site en https

RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.monsite.fr/$1 [R,L]

Protéger une zone

Pour protéger une zone de son site (un espace administrateur, un dossier ou un fichier), il est possible de le faire via son .htaccess. Pour fonctionner, on lie celui-ci à un .htpasswd que l'on place dans le dossier à protéger. Ce dernier contient les informations qui vont permettre de comparer avec les identifiants entrées par l'utilisateur.

Protéger un dossier

AuthUserFile /exemple/.htpasswd
AuthName "Accès protégé"
AuthType Basic
Require valid-user

Protéger un fichier

<Files monfichier.php>
AuthUserFile /exemple/.htpasswd
AuthName "Accès restreint"
AuthType Basic
require valid-user
</Files>

.htpasswd

Nom_d_utilisateur:Mot_de_passe

Redirections par erreur

Pour rediriger un utilisateur sur une page en fonction d'une erreur :

ErrorDocument 401 /erreurs/401.php
ErrorDocument 403 /erreurs/403.php
ErrorDocument 404 /erreurs/404.php
ErrorDocument 500 /erreurs/500.php

Rappel :
400 : Bad Request: la syntaxe de la requête est mal formulée.
401 : Unhautorized: l'utilisateur n'a pas entré le bon mot de passe pour accéder au contenu.
403 : Forbidden: l'accès au contenu est interdit.
404 : Not Found: le document n'a pas été trouvé.
500 : Internal Server Error: le serveur a rencontré une erreur interne (erreur de script ou erreur passagère).
503 : Service Unvailable: le serveur ne peut pas répondre à cause d'une surcharge de trafic (trop de visiteurs).

Redirection

Pour rediriger vers une page (lorsqu'un utilisateur entre une url éronnée par exemple ou s'il cherche à accéder à un dossier privé sur votre site, ici, l'utilisateur est renvoyé sur une page "Accès interdit"):

DirectoryIndex ../403.php

Mise en maintenance

ErrorDocument 403 /maintenance.php
deny from all 
allow from xx.xxx.xxx.xxx 
<Files maintenance.php>
allow from all
</Files>

Ici, "Deny from all" interdit l'accès à tous les utilisiteurs qui sont ainsi redirigés vers la page de maintenance mise à part pour les utilisateurs qui ont pour adresse IP : xx.xxx.xxx.xxx.
Enfin, on indique que pour la page de maintenance, tout le monde peut y accéder.

Exemple d'un .htaccess basique dans le dossier source:

ErrorDocument 404 /404.php

RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.monsite.fr/$1 [R,L]

Robots.txt

Qu'est-ce que le robots.txt ?

Le robots.txt est un fichier que l'on ajoute dans le dossier source de son site. Celui-ci a pour objectif de donner des informations aux robots qui parcourent votre site. Il permet notamment de mieux référencer ce dernier en dirigeant les robots vers un sitemap qui recense les pages de votre site que vous souhaitez référencer. Le robots.txt permet également d'indiquer aux robots quel dossier ou page vous ne souhaitez pas référencer.

Déréférencer du contenu :

Ici, les images contenues dans 2 dossiers différents ainsi que l'espace administrateur ne seront pas parcourus par les robots et ne seront donc pas référencés. "User-Agent: *" permet de s'adresser à tous les robots existants

User-Agent: * 
Disallow: /img/dossier_1/
Disallow: /img/dossier_2/
Disallow: /espace_admin

Diriger les robots vers le sitemap de votre site

Sitemap: https://www.monsite.fr/sitemap.xml

Exemple de robots.txt :

User-Agent: * 
Disallow: /img/icones/
Disallow: /img/carree_sites/
Disallow: /admin

Sitemap: https://www.monsite.fr/sitemap.xml
❓ Rendre des dossiers non référençables depuis son code

Pour rendre un lien invisible aux yeux des robots :

<a href="#" rel=nofollow> </a>

Sitemap

A quoi sert une sitemap ?

Le sitemap est un fichier que l'on ajoute dans le dossier source de son site. Celui-ci a pour objectif de faciliter l'indexation d'un site. Il liste les différents URL d'un site à référencer ainsi que quelques métadonnées telles que la priorité (qui permet de donner plus d'importance à une page qu'à une autre) et la date des dernières modifications.

> Pour réaliser un sitemap automatiquement

Exemple de sitemap :

<?xml version="1.0" encoding="UTF-8"?>
<urlset
      xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9
            http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">
<!-- created with Free Online Sitemap Generator www.xml-sitemaps.com -->


<url>
  <loc>https://www.devu.fr/</loc>
  <lastmod>2018-05-19T09:32:17+00:00</lastmod>
  <priority>1.00</priority>
</url>
<url>
  <loc>https://www.devu.fr/index.php</loc>
  <lastmod>2018-05-19T09:32:17+00:00</lastmod>
  <priority>0.80</priority>
</url>
<url>
  <loc>https://www.devu.fr/nos_prestations.php</loc>
  <lastmod>2018-05-19T09:32:17+00:00</lastmod>
  <priority>0.80</priority>
</url>
<url>
  <loc>https://www.devu.fr/articles.php</loc>
  <lastmod>2018-05-19T09:32:17+00:00</lastmod>
  <priority>0.80</priority>
</url>
<url>
  <loc>https://www.devu.fr/contact.php</loc>
  <lastmod>2018-05-19T09:32:17+00:00</lastmod>
  <priority>0.80</priority>
</url>
<url>
  <loc>https://www.devu.fr/faq.php</loc>
  <lastmod>2018-05-26T09:32:17+00:00</lastmod>
  <priority>0.80</priority>
</url>
<url>
  <loc>https://www.devu.fr/Elements/documents/a236050813908e815db08bf2281cf8f26.pdf</loc>
  <lastmod>2018-05-08T11:49:46+00:00</lastmod>
  <priority>0.80</priority>
</url>


</urlset>

.user.ini

Dans certains cas, pour des hébergements (souvent mutualisés) qui n'ont pas accès au fichier php.ini, il est possible de créer un sous fichier .user.ini dans le dossier racine 'www'. Celui-ci permet de modifier certains paramètres du php.ini sur son site.

Exemple d'un .user.ini :

post_max_size=3000M
memory_limit=3000M
upload_max_filesize=3000M

Les fichiers d'informations

phpinfo.php

Une page phpinfo.php peut être utile pour connaître rapidement les configurations de son site, cependant, en ligne, celle-ci peut représenter un risque pour la sécurité du site.

Exemple du phpinfo.php:

<?php phpinfo(); ?>

chemin.php

Un fichier chemin.php permet d'avoir le chemin exacte d'un fichier particulier sur le serveur, il peut être utile pour intégrer un .htpasswd ou pour interroger le serveur (pour connaitre la taille du disque par exemple).

Exemple du chemin.php:

<?php echo realpath ('index.php'); ?>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment