1 site web, 2 domaines dont 1 référencé (avec robots.txt et .htaccess)

Au cours de la création de notre site mowse.dev nous avons souhaité créer un sous-domaine afin de faciliter notre gestionp du site web. Ce sous-domaine utilisait les mêmes fichiers que notre site web principal, mais ne devait pas être référencé sur les moteurs de recherches ! Nous avons vite rencontré un problème en raison de l'unicité du fichier robots.txt. Ce tutoriel a pour but de vous montrer sa résolution.

Nb : Ce tutoriel nécessite un fichier .htaccess, il sera donc à destination des utilisateurs de Apache2 et non de Nginx.

Modification et création de robots.txt

Un fichier robots.txt est un fichier utilisé par de nombreux moteurs de recherche afin d’indiquer si un site (ou une page / un document) doit être référencé ou non.

Pour ce tutoriel, prenons 2 site web : “site.com” et “no-ref.site.com”. Comme leurs noms le suggèrent, on souhaite que le site “site.com” soit le seul à être référencé sur Google, Bing, etc.

Par défaut, sans robots.txt, le moteur de recherche référencera votre site web s’il est accessible et respecte ses standards. C’est pourquoi, nous ne créerons pas de robots.txt pour “site.com”.

A la racine de votre site, créez un fichier .txt avec le nom de votre choix, pour ma part : robots2.txt.

    
        User-agent: *
Disallow: / 
    

Pour en savoir plus

robots2.txt ne sera pas traité par les moteurs de recherche, ils analysent uniquement les fichiers robots.txt.
Il sera alors nécessaire, pour le domaine “no-ref.site.com” uniquement, de faire passer le fichier robots2.txt comme un fichier robots.txt. C’est là qu’entre en jeu le fichier .htaccess.

Configuration du .htaccess

Un fichier .htaccess est un fichier de configuration Apache2. Il permet de paramétrer le serveur HTTP depuis un dossier spécifique. Nous allons nous en servir pour permettre aux moteurs de recherche d’accéder au contenu de robots2.txt depuis no-ref.site.com/robots.txt. Pour cela :

RewriteEngine on
RewriteCond %{HTTP_HOST} ^no-ref\.site\.com$
RewriteRule ^robots\.txt$ robots2.txt [L]

Littéralement, une requête à destination de no-ref.site.com/robots.txt renverra le contenu de robots2.txt.

Les moteurs de recherches (principaux) ne référenceront donc pas votre deuxième domaine !