7763 sujets

Développement web côté serveur, CMS

Bonjour à tous,

Mon site vitrine est composé de 2 pages html (PHP non activé)
l'index et les mentions légales.

J'ai empêché l'indexation des mentions légales et souhaite que l'accès direct (en tapant l'url ou via un moteur de recherche peu scrupuleux de robots.txt et de la balise robots) redirige vers la page index, je me rappelle avoir vu ça quelque part il y a un bout de temps, mais je ne me rappelle plus comment faire…

Merci de votre aide Smiley smile
Bonsoir,

Avec des sessions ? j'aurais utilisé une entrée de la base de donnée pour faire sa moi ...

Quand l'utilisateur passe sur la page de formulaire et qu'il envoi les bonnes informations on met à 1 le champ "Allopass" et lorsqu'on passe sur la page de fin on effectue la requette que si la variable est à 1, si c'est le cas on décrémente la valeur à 0.

J'utilise la base de donnée car si le navigateur plante tu perds tes sessions et c'est bien con pour le pauvre gars qui a payer ^^ https://tgw.onl/siteground/

Sa évite aussi de voir les petits malins actualiser 30 fois la page avec la requette Smiley langue

voir : https://tgw.onl/digitalocean/ https://tgw.onl/ipage/
Modifié par arso (04 Dec 2018 - 18:39)
Bonjour,
La redirection 301 dans ce cas n'est pas utile me semble t il, car on doit pouvoir avoir accès à la page, mais uniquement depuis une autre page du site et non depuis un moteur de recherche ou un favori.

Pour l'autre solution, malheureusement, je n'ai pas accès à PHP, donc pas de session possible…

S'il existe une autre piste je suis preneur Smiley smile , en javascript de préférence (même si je sais que si on le désactive ça ne fonctionne plus, reste que 99,9% des gens l'ont d'activé Smiley cligne donc ça m'ira très bien si ça existe Smiley smile )
Modifié par januor (05 Dec 2018 - 14:14)
Bonjour,

Une autre possibilité serait de consulter le referrer du visiteur (page précédente). S'il correspond au domaine du site vous accordez l'accès sinon vous redirigez.

Néanmoins ce n'est pas exempt de défaut. En effet, si l'utilisateur a désactivé l'envoi du referrer au sein de son navigateur, il ne pourra pas accéder à la-dite page et ce même s'il provient d'une autre page du site.

MDN - document.referrer
Meilleure solution
Bonjour,

Je ne comprends pas bien l'intérêt de faire ça. C'est difficile, génèrera quel que soit la solution des faux-positifs et des faux-négatifs.

Pour empêcher d'apparaitre dans google & co ce n'est pas par le robots.txt, mais en ajoutant une meta : <meta name="robots" content="noindex,nofollow> ou une en-tête HTTP (X-Robots-Tag "noindex, nofollow"). (certains petits et mauvais moteurs de recherche utilisent effectivement robots.txt, il peut être utilisé en complément)

Pour le reste pourquoi créer des comportements potentiellement désagréables pour les utilisateurs (URLs inconsistants) dans le but de faire du nez à des micro-moteurs de recherches?
Modifié par kustolovic (05 Dec 2018 - 16:35)
Bonsoir,
C'est surtout à cause de Facebook que je souhaite cela. En effet on peut interdire l'indexation d'une page, ce {BIP} de réseau social ne respecte rien en générant lui même un aperçu qui sera indexé s'il apparait dans une page Facebook indexée. J'ai déjà eu le problème et ai passé 6 mois à faire supprimer de Google les résultats du fait des pages duplicate dans 50.000 langues !

Donc en redirigeant la page mentions légales venant d'un autre referrer, Facebook serait redirigé vers la page d'acceuil et donc renverrait un aperçu de cette dernière, ce qui n'est pas intrusif au niveau de la vie privée.

Pour les tags, j'ai en effet mis
<meta name="robots" content="noindex, noarchive" /> sur la page des mentions légales, et fait un lien en Javascript pour limiter certains robots :
<p onclick="window.location='mentionslegales.html'"></p>

Voilà pourquoi je souhaite empêcher l'accès direct à cette page, je vais essayer le contenu de referrer Smiley smile

Est-ce que le code suivant conviendrait :



<script>
docref = document.referrer;
if( docref == -1 )
{
    // redirect
    window.location.replace( "http:/pagedaccueil" );
}
else
{
    // ignore and load page
}
</script>



Merci,
Bonne soirée
Modifié par januor (06 Dec 2018 - 22:32)
En l'état, la variable docref contiendra soit une chaîne vide (cas d'un accès direct à la page) ou l'url de la page précédente donc docref ne sera jamais égale à -1.

L'idée que j'avais en tête lorsque je vous ais parlé de cela, et selon ce que j'avais compris du problème, était de tester si docref contiendrait le domaine de votre site. S'il le contient on permet l'accès sinon on redirige.

Néanmoins avec ce complément d'information, je m'aperçois que ce n'est pas forcément la meilleure solution.

En effet, si votre dessein est de cibler Facebook et uniquement celui-ci, il vaudrait peut-être mieux consulter l'agent utilisateur (user-agent) en lieu et place du referrer.
Facebook utilise des agents utilisateurs très explicites. En vérifiant si celui-ci contient certains mots clés il peut-être aisé d'effectuer la manipulation désirée.

Récupérer l'agent utilisateur en JS: MDN - userAgent
Base de donnée des différents agents utilisateurs: Udger - Bots UA list

Qu'en pensez-vous ?

PS: dans votre condition, le else est superflus.
Modifié par Greg_Lumiere (07 Dec 2018 - 15:48)
Bonjour,

Ca semble une solution intéressante Smiley smile
Je vais explorer ça ce week end.

Merci beaucoup