J'ai les trois domaines suivants:
example1.com
(Interdit)example2.com
(Interdit)example3.com
(autoriser)Tous les domaines pointent sur le même dossier, public_html
.
Comment interdire aux moteurs de recherche d'analyser des pages sur les deux premiers domaines?
Vous devez servir de manière conditionnelle un fichier robots.txt différent en fonction du domaine/hôte auquel vous avez accédé. Sur Apache, vous pouvez le faire avec .htaccess:
RewriteEngine On
RewriteCond %{HTTP_Host} ^(example1\.com|example2\.com)$
RewriteRule ^robots\.txt$ /robots-disallow.txt [L]
Ceci est spécifique à votre exemple, où il servira un fichier robots.txt "non autorisé" (robots-disallow.txt
) sur # 1 et # 2, sinon la demande échouera et servira votre fichier robots.txt
normal pour # 3 qui "permet".
Je travaille sur un site similaire où je gère cela avec PHP.
Dans mon .htaccess, j'ai une ligne de lecture:
RewriteRule ^robots.txt$ robots.php
Dans robots.php, j'ai les éléments suivants:
<?php
header('Content-Type: text/plain; charset=utf-8');
if($_SERVER['HTTP_Host']=='www.allowed-site.fr'){
echo 'User-agent: *
Disallow:
Host: https://www.allowed-site.fr/
Sitemap: https://www.allowed-site.fr/sitemap-fr.xml
';
} else if($_SERVER['HTTP_Host']=='www.allowed-site.lu'){
echo 'User-agent: *
Disallow: /example/
Host: https://www.allowed-site.lu/
Sitemap: https://www.allowed-site.lu/sitemap-lu.xml
';
} else {
echo 'User-agent: *
Disallow: /
';
}
?>
Cela vous permet d’avoir un fichier unique dans lequel vous pouvez personnaliser votre fichier robots.txt pour chaque domaine.
Comme vous n'autorisez les moteurs de recherche qu'à un seul domaine, vos règles Rewrite peuvent être simplifiées. Il suffit d'utiliser ceci:
RewriteEngine On
RewriteCond %{HTTP_Host} ^example3\.com$
RewriteRule ^robots\.txt$ /robots-allow.txt [L]
Dans le dossier public_html, vous devez créer deux fichiers. robots.txt et robots-allow.txt
Dans le fichier robots.txt, vous devez ajouter les éléments suivants:
User-agent: searchengine
Disallow: /
remplacez le moteur de recherche par Google ou le moteur que vous souhaitez bloquer. Répétez les lignes ci-dessus si vous souhaitez ajouter plusieurs moteurs de recherche. Ensuite, votre fichier robots.txt se présentera comme suit:
User-agent: searchengine
Disallow: /
User-agent: searchengine2
Disallow: /
User-agent: searchengine3
Disallow: /
Ensuite, dans robots-allow.txt, vous pouvez le laisser sous forme de fichier vide ou ajuster le délai d'analyse pour tous les moteurs de recherche, comme ceci:
User-agent: *
Crawl-delay: 1
Le nombre après le délai d'analyse représente le temps d'attente minimal en secondes entre les demandes adressées au serveur par le même agent d'utilisateur.