来自多个源的http标头重定向

时间:2015-04-25 10:53:15

标签: php nginx https http-redirect

这是我的工作设置

主页 - >论坛页

您只能在来自主页面时访问论坛页面。如果您从其他任何地方访问Forum-Page,您将返回主页。

这是我的论坛页面上的代码,它按预期工作

if($_SERVER['HTTP_REFERER']!=='https://homepage.com/folder/mainpage.php')
{
    header('Location: https://homepage.com/folder/mainpage.php');
    exit;
}

BUT

如果我从论坛子页面回来,我也会回到主页面。 论坛页面看起来像这样

https://homepage.com/folder/forumpage.php?page=view&entry=16

这就是我想要实现的目标

主页 - >论坛页面< - 论坛 - 子页面

所以现在我需要在我的论坛页面上另一个规则,它也接受来自论坛子页面的返回。由于我不能定义每个子页面,我想在最后添加一个通配符,如此

https://homepage.com/folder/forumpage.php?page=*

我只是不知道如何使用正确的语法将其添加到上面的第一条规则中以使其工作。任何想法都受到高度赞赏。

1 个答案:

答案 0 :(得分:0)

我想你可以做这样的事情

+ image_name=Fedora-x86_64-20-20140618-sda
+ disk_format=qcow2
+ container_format=bare
+ is_arch ppc64
++ uname -m
+ [[ i686 == \p\p\c\6\4 ]]
+ '[' bare = bare ']'
+ '[' '' = zcat ']'
+ openstack --os-token 2c0781724c1b4ed1990b62ac4996b83b --os-url http://192.168.1.8:9292 image create Fedora-x86_64-20-20140618-sda --public --container-format=bare --disk-format qcow2
ERROR: openstack <html>
 <head>
  <title>401 Unauthorized</title>
 </head>
 <body>
  <h1>401 Unauthorized</h1>
  This server could not verify that you are authorized to access the document you requested. Either you supplied the wrong credentials (e.g., bad password), or your browser does not understand how to supply the credentials required.<br /><br />
 </body>
</html> (HTTP 401)

这个设置让我很担心。我不会依赖if($_SERVER['HTTP_REFERER']!=='https://homepage.com/folder/mainpage.php' && substr($_SERVER['HTTP_REFERER'], 0, 47) !== 'https://homepage.com/folder/forumpage.php?page=') { header('Location: https://homepage.com/folder/mainpage.php'); exit; } ;浏览器无法保证正确设置或根本不设置。我特别担心这个问题被标记为安全性,因为这没有提供真正的安全性。