[英]Prevent direct access to url
我知道这个问题已经被问过几次了,但我仍然迷路!
我有一个网站项目(php),该项目内部托管在Apache服务器上。 该网站加载了主页。 主页包含一个login
链接。 当用户单击login
, .htm
页将在单独的选项卡中打开,该选项卡托管在IIS中的另一台服务器上(外包)。 我想防止用户直接在地址栏中输入login
页面的URL。 相反,用户应始终通过项目主页导航至login
页面。
我了解的唯一解决方法是通过htaccess
文件。 当页面位于同一服务器上时,此方法有效。 但是,在IIS上没有htaccess
文件。
另一种解决方案是单击login
时执行一个http post variable
。 如果变量存在(通过主页访问),则应加载登录页面,否则应将用户重定向到主页(如果直接输入登录URL)。 但是,我能够发布一个变量,但是我不知道在哪里进行调用以加载适当的页面。 以下用于发布变量:
<ul>
<li><form id="loginForm" name="loginForm" method="post" action="redirectTest.php">
<input type="hidden" name="total" id="total" value="">
<a href="#" onclick="setValue();">Login</a>
</form></li>
<script type="text/javascript">
function setValue(){
document.sampleForm.total.value = 100;
document.forms["loginForm"].submit();
}
</script>
redirectTest.php
当前为空,因为我不确定如何相应地重定向。
编辑: 例如,我的网站是www.abc.com,登录页面是www.xyz.com/login.htm。 如何确定这是通过www.abc.com路由还是直接在地址栏中输入的URL?
在登录页面上,可以使用变量$_SERVER['HTTP_REFERER']
。 这将包含您单击链接所在的页面的名称。 然后可以在if语句中使用它,如下所示:
if(isset($_SERVER['HTTP_REFERER']) && $_SERVER['HTTP_REFERER'] == "http://domain.com/page_with_login_link.php")
在javascript中,可以通过document.referer
访问http Referer。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.