web-dev-qa-db-fra.com

Empêcher le contenu en double lors de l'utilisation de CloudFlare

J'ai un site Web qui utilise CloudFlare CDN. Lors de la configuration du CDN, CloudFlare a créé un site Web sur mon site, tel que direct.example.com, qui peut être utilisé pour remplacer CloudFlare et accéder directement au site.

Lorsque je fais une recherche google pour "site: direct.example.com", il en résulte des résultats. Cela signifie que Google a également exploré et indexé ce sous-domaine également. Le problème est que, comme example.com et direct.example.com sont tous deux constitués du même contenu, celui-ci aboutira à une duplication du contenu. (Je pense que ce n'est pas bon pour le référencement).

Donc, ce que je veux, c'est google bot to ne pas explorer ni indexer "direct.exemple.com". J'ai essayé d'utiliser le fichier robots.txt pour faire l'affaire, mais j'ai échoué, car les deux utilisent le même fichier robots.txt. Que dois-je faire pour empêcher totalement l'indexation de mon sous-domaine? Y a-t-il d'autres options pour surmonter ce problème?

Je vous remercie.

4
Grainier

La solution la plus simple serait de désactiver le sous-domaine "direct". Toutefois, si vous souhaitez utiliser ce sous-domaine, vous devrez utiliser une approche plus créative.

Une façon de le faire est d’avoir un fichier robots.txt dynamique. Lorsque le web spider demande le fichier robots.txt, nous le redirigeons vers notre page de robots dynamiques. Si le sous-domaine correspond à nos critères, nous envoyons un message 'rejeter', sinon nous présentons simplement le fichier robots.txt normal.

Si vous utilisez Apache, votre règle de réécriture pourrait ressembler à ceci:

RewriteRule /robots\.txt$ /var/www/myweb/robots.php

Le fichier php est générique.

<?php
    header('Content-type: text/plain');

    if ($_SERVER['HTTP_Host'] == 'direct.example.com') { 
        echo "User-agent: *\n";
        echo "Disallow: /\n";
    } else {              
        include('robots.txt');    
    }
0
user555