如何防止人们仅使用URL访问我网站上的页面?

时间:2020-05-13 00:12:40

标签: html wordpress

如何从外部阻止站点页面?我不希望任何人不先浏览另一个页面就访问该页面。例如,我没有人能够先输入www.example.com/test而不先进入www.example.com,然后按我粘贴在www.example.com上的链接。我看到了另一个类似的问题,但是我对编码一无所知,所以答案对我来说很混乱。有人可以指引我这样做吗?这是我看到的帖子,但我不明白答案:Prevent direct access to a webpage by typing the URL。我不希望任何人甚至登录的用户都能够访问这些页面,至少直到他们付款后才能访问这些页面,但这是另一回事了。但是,如果您可以帮助我,那就太好了。

1 个答案:

答案 0 :(得分:0)

不幸的是,我认为WordPress没有为此提供插件,因此您必须进入代码。我也不知道WordPress使用什么语言,但是如果您的文件扩展名是.html,.htm或.php,那么您就可以从事商务活动。您可以通过几种方法来执行此操作,但我将为您提供应该与所有浏览器兼容的方法。

因此,在您的引荐来源页面(在您的示例example.com中),您将在<head></head>之间插入以下代码:

<script>
  function redirect(){
    document.getElementById('redirect').submit();
  }
</script>

然后,在<body></body>之间的同一页上插入:

<form id='redirect' action='/yourPage' method='POST'>
  <input type='hidden' name='redirected', value='true' hidden>
</form>

确保将您的页面更改为正确的页面。接下来,在<body></body>之间的同一页面上,找到类似以下内容的东西:

<a href='/yourPage'>What ever your link says</a>

并将其更改为:

<a href='javascript:redirect()'>What ever you want your link to say</a>

最后,转到要保护的页面(您将其作为测试编写,在我的代码中为yourPage),然后首先确保扩展名是.html或.htm,将其更改为.php,然后插入在最上方:

<?php
  if(!isset($_SERVER['POST']['redirected'])){
    header('Location:www.example.com');
    die();
  }
?>

确保将www.example.com更改为您的网站。您可能还想知道'die()'的作用。 “标头”部分是重定向请求,所有请求都将被客户端拒绝。因此die基本上说如果您不重定向,您仍然看不到网页。

希望这会有所帮助,如果您的页面不是.htm,.html或.php,请评论扩展名是什么,以便我可以找到该语言的等同版本。