我知道这个问题已被多次询问但我仍然迷路了!
我有一个在Apache服务器内部托管的网站项目(php)。该网站加载主页。主页包含login
链接。当用户点击login
时,会在IIS中另一台服务器(外包)上托管的单独选项卡中打开.htm
页面。我想阻止用户直接在地址栏中输入login
页面的网址。相反,用户应始终通过项目主页导航到login
页面。
我理解的唯一工作是通过htaccess
文件。当页面位于同一服务器上时,此方法有效。但是,在IIS上没有htaccess
文件。
另一个解决方案是在点击http post variable
时执行login
。如果变量存在(通过主页访问),则应加载登录页面,否则应将用户重定向到主页(如果直接输入登录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?
答案 0 :(得分:0)
在登录页面上,您可以使用变量$_SERVER['HTTP_REFERER']
。这将包含您单击链接的页面的名称。然后,您可以在if语句中使用它,如下所示:
if(isset($_SERVER['HTTP_REFERER']) && $_SERVER['HTTP_REFERER'] == "http://domain.com/page_with_login_link.php")
在javascript中,可以通过document.referer