Actualmente estoy desarrollando un sitio web en WordPress
¿Hay alguna manera, ya sea con el uso de JS o PHP, para que cuando el usuario haga clic en una etiqueta de anclaje dentro del sitio web, sea llevado a otra página, pero si decide ir a esa misma página escribiendo el URL en la barra de búsqueda, se niegan y el contenido muestra un mensaje 404?
Ejemplo:
<body>
<a href="example.com/page/">Go to Page</a>
</body>
<body>
// From URL Bar
<div class="404">Nothing was found at this location.</div>
// From Anchor Tag
<div class="content">Page Content</div>
</body>
Puede verificar si $_SERVER['HTTP_REFERER']
está configurado en caso de una referencia de una página diferente o no (acceso directo).
También puede extender la verificación de este valor a páginas específicas, pero puedes empezar con:
<?php
if (!isset($_SERVER['HTTP_REFERER'])) {
echo "error";
exit();
}
Esto puede resolver su problema:
También puede cifrar el parámetro 'mostrar' y luego descifrar su valor para lograr su objetivo.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<?php
if(isset($_GET['show'])){
?>
// From Anchor Tag
<div class="content">Page Content</div>
<?php
}else{
?>
// From URL Bar
<div class="404">Nothing was found at this location.</div>
<?php
}
?>
<a href="/index.php?show">Go to Page</a>
</body>
</html>