如何阻止/保护通过URL直接访问?

时间:2014-12-18 16:57:40

标签: .htaccess access-control

我一直在寻找如何通过网址阻止/保护网页免受直接访问的日子,但没有任何帮助。

以下是一个示例: page 受到保护或阻止直接访问。我可以通过主页index.html查看该页面,但如果我复制并粘贴该网址直接访问它,我就无法查看。


  • 这就是我想要的:
  • 我想阻止或保护文件夹/ html页面/文件不被直接访问,可以通过重定向到主页index.html,也可以在目录/ page / file直接时发送404状态代码通过网址访问。

  • 我更喜欢通过发送404状态代码或重定向到我的notfound.html 404错误页面来保护文件夹/ html页面/文件,如果不可能,重定向到主页。

  • 我不介意使用php或其他任何东西,但我想留下所有页面.html


  • 我想阻止/阻止直接访问:

  • http://mywebsite.com/pages整个文件夹&所有.html页面 在文件夹中。

  • http://mywebsite.com/images整个文件夹&文件夹中的所有图像。 (.png,.ico,.jpg)。


我不想只是简单地重定向页面,因为可以查看源页面。

我真的需要帮助,请明白如何...我正在学习所有这些东西。

1 个答案:

答案 0 :(得分:1)

如果没有$_SERVER['HTTP_REFERER'](PHP),document.referrer(JavaScript)属性,请求可能是直接命中

无法安全区分直接和非直接点击。例如,HTTP引用者是一个标题,可以由客户端(用户)轻松更改。

此外,一些域策略安全浏览器>强制删除<默认情况下为referer。这意味着,您可能遇到阻止合法请求

如果您打算这样做,PHP中最简单的情况是:

<?php
if (empty($_SERVER['HTTP_REFERER'])) {
    header('Location: /');
    exit;
}

您的网络服务器(Apache .htaccess)有类似的解决方案:

RewriteCond %{HTTP_REFERER} !=""
RewriteRule - [F]

(未经过测试!)