web-dev-qa-db-fra.com

Comment faire en sorte que les en-têtes de tout le site envoient le code 404?

J'ai un site web pour les tests. Je ne veux pas que ce site soit indexé par les moteurs de recherche.

Les pages du site renvoient maintenant 200 OK dans les en-têtes. Comment faire en sorte que le site entier envoie le code 404 dans les en-têtes, mais reste actif?

Le site est construit sur ModX.

2
Maryja Piaredryj

Ceci est un problème XY . Vous souhaitez empêcher l'indexation sur votre site et vous savez que les 404 ne sont pas indexés. Vous souhaitez donc empêcher l'indexation "à l'aide de" 404. C'est la mauvaise façon de faire.

Il existe de nombreux moyens appropriés pour empêcher l'indexation , tels que l'utilisation de robots.txt, les balises META ou l'authentification.

12
grg

S'il s'agit d'un site de test qui ne devrait absolument pas être indexé, vous pouvez prendre quelques mesures pour éviter aux moteurs de recherche d'indexer votre site plus efficacement que le renvoi de 404 en-têtes.

robots.txt

Incluez un fichier robots.txt à la racine du site, y compris:

User-agent: *
Disallow: /

X-Robots-Tag

Incluez les éléments suivants à votre fichier .htaccess pour ajouter un tag X-Robots à toutes les ressources:

Header set X-Robots-Tag "noindex,nofollow"

Mot de passe protéger

Vous pouvez également demander un mot de passe pour accéder au site Web. This donne une façon de le faire, mais la partie .htaccess serait:

AuthType Basic
AuthName "Password Protected Area"
AuthUserFile /path/to/.htpasswd
Require valid-user

Verrouillage IP

Enfin, vous pouvez bloquer tout le trafic sur ce site par adresse IP. Seuls les utilisateurs autorisés et vous-même pourrez consulter le site Web et les moteurs de recherche seraient entièrement verrouillés.

9
Andrew Lott

Dans ce cas, je préférerais qu'une authentification .htpasswd soit ajoutée à la racine de mon site. Ajoutez simplement les lignes suivantes à votre fichier .htaccess, puis créez un fichier .htpasswd vide et laissez le Htpasswd Generator vous créer la chaîne de paires de mot de passe utilisateur à coller. Prenez un nom d'utilisateur et un mot de passe simples que vous pourrez mémoriser et partager avec vos collègues. C'est seulement pour garder les bots à distance, donc ça ne doit pas être trop difficile.

.htaccess:

AuthType Basic
AuthName "My Protected Area"
AuthUserFile /path/to/.htpasswd
Require valid-user
1
leymannx

D'après les réponses précédentes, j'ai compris que c'était une mauvaise pratique. Merci les gens.

Mais si vous devez faire exactement ce que je vous demandais, il vous suffit d’ajouter à index.php cette phrase en haut avant le code:

<?php
  header('HTTP/1.1 404 Not Found');
?>

Donc, chaque page du site aura le statut 404 mais restera en vie

0
Maryja Piaredryj

L’utilisation de codes d’erreur 404 sur l’ensemble du site est une pratique épouvantable, en particulier lorsque les moteurs de recherche le consultent, car cela leur donne l’idée que vous corrigerez les pages manquantes, mais que les pages que vous envisagez de tester ne manquent pas. convertir 200 statuts en 404 statuts.

La façon dont vous devriez aborder le problème dépend du niveau de sécurité souhaité.

Si vous souhaitez que seuls certains ordinateurs puissent tester votre site, vous pouvez modifier les fichiers de configuration du serveur pour autoriser uniquement certaines adresses IP à accéder à votre site. De cette façon, les moteurs de recherche ne pourront jamais y accéder.

La méthode la plus sécurisée suivante consiste à inclure cette ligne entre <head> et </head> dans vos scripts ou fichiers générant la sortie HTML:

<meta name="ROBOTS" content="NOINDEX">

Vous pouvez également utiliser les méthodes fournies dans les autres réponses. Le seul problème avec robots.txt est que toute personne tentant de pirater le système aura accès à ce fichier. Par conséquent, NE FAITES PAS que vous ajoutiez des commentaires dans le fichier robots.txt, car cela pourrait donner aux pirates une meilleure chance de modifier votre système.

0
Mike