Tengo una pregunta un poco extraña y no estoy seguro de si esto podría lograrse, pero de todos modos tengo curiosidad por intentarlo.
Tengo 2 sitios que son independientes, digamos www.site1.com y www.site2.com . site2 se colocará en un href en site1. La pregunta es: ¿es posible que se pueda acceder al sitio 2 solo después de que el usuario sea redirigido desde el sitio 1 y si el usuario intenta abrir el sitio 2 directamente o a través de un href desde otro sitio diferente al sitio 1 para no poder acceder a él?
Comprobar:
window.document.referrer // Empty if User is directly loading page.El valor es una cadena vacía si el usuario navegó directamente a la página (no a través de un vínculo, sino, por ejemplo, mediante un marcador). Debido a que esta propiedad solo devuelve una cadena, no le brinda acceso al modelo de objeto de documento (DOM) a la página de referencia.
Documentación de MDN: https://developer.mozilla.org/en-US/docs/Web/API/Document/referrer
Soporte del navegador:
Puede verificar un parámetro de publicación que configuró desde la redirección del sitio web 1 (ya sea a través de un formulario o JavaScript simple). Y luego configure una variable de almacenamiento local para verificar al cargar el sitio 2.
documento de almacenamiento local
Solicitud de publicación de JavaScript como un envío de formulario
Pero tenga en cuenta que esto se puede omitir fácilmente con suficiente conocimiento de html/js.
Para asegurarse de que solo su sitio web pueda hacer un parámetro de publicación, tal vez podría ( no estoy seguro de mí allí ): generar código (usado como parámetro de publicación) sobre la marcha desde el servidor web 1 y enviarlo al servidor web 2 al mismo tiempo (o un poco antes) para asegurarse de que el código recibido por el servidor 2 realmente se genera en el servidor 1
Dependiendo del servidor back-end que esté usando, puede usar algo llamado detalles de REFERRER que estará allí en el http header de la solicitud (para su página www.site2.com , por ejemplo). Este REFERRER tendrá la información sobre quién refirió al usuario a este sitio. Puede agregar una condición como if REFERRER is www.site1.com then render the page .
Aquí hay un enlace para comenzar con https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer