Alors, pour faire simple, lorsque tu appelle une page sur le web, tu formes ce qu'on appelle une requête HTTP, celle ci est composée de plusieurs éléments:
- La requête à jouer (verbe + addresse + version du protocole HTTP supportée)
- Les entêtes (plein de champs différents dont l'un va nous interesser tout particulièrement)
- Le corps (qui peut contenir par exemple les valeurs d'un formulaire)
N'importe quel appel vers une de tes pages HTML/PHP utilise ce système. Dans les entêtes (ou headers) de cette requête, on trouve plusieurs champs, ici le champ 'User-Agent va nous servir, c'est une chaîne qui décrit le client HTML utilisé pour voir la page courante.
Coté PHP pour connaitre le contenu de ce champ, la variable $_SERVER['HTTP_USER_AGENT'] te permet de connaitre cette information.
Pourquoi est-ce intéressant? Parce que les bots de Google utilisent un User Agent spécifique :
- Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)
- Googlebot/2.1 (+http://www.google.com/bot.html)
(cf. https://support.google.com/webmaste [...] 943?hl=en)
Tu peux donc pour ta page, autoriser l'accès avec un test de type
Code :
- if(isset($_COOKIE["moncookieexiste"]) || $_SERVER['HTTP_USER_AGENT'] == "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)" )
- {
- //j'affiche le code html et le contenu de ma page
- }
- else{
- //Je redirige vers la page d'accueil
- header("location:http://monurlaccueil" );
- }
|
Le seul problème vient du fait que "n'importe qui" (faut quand même le vouloir) peut définir son User Agent et donc "usurper" l'identité du bot Google et accéder à ta page sans avoir de cookie.