【问题标题】:Prevent Direct URL input but grant Localhost access阻止直接 URL 输入,但授予 Localhost 访问权限
【发布时间】:2015-02-04 11:23:28
【问题描述】:

我正在尝试为我的网站编写一个 .htaccess 文件,这将阻止通过直接 URL 输入访问页面和图像,但将授予 localhost 请求。到目前为止,我在谷歌搜索后找到了这段代码:

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^http://(www\.)?localhost [NC] 
RewriteCond %{HTTP_REFERER} !^http://(www\.)?mydomain.com.*$ [NC] 
RewriteRule \.(php|css|js|jpg)$ - [F]

问题是我的网站图像受到保护,但是当我想从父目录访问index.php(htaccess 在我的子目录中,而不是父目录中)时,我会看到403 Forbidden 错误。

现在我不太清楚这些线的含义,或者如何调整它们,所以我无法分辨是非。有人可以帮我看看这实际上是做什么的吗?谢谢!

【问题讨论】:

    标签: php apache .htaccess localhost


    【解决方案1】:

    您的资产可访问或不可访问。如果不公开提供资产,就无法向公众提供资产。您可能认为“来自本地主机”意味着是否有人已经“在您的网站上”;这是对网络工作原理的错误理解。每个资产都是通过 URL 从服务器请求的,所有请求都来自客户端。请求并非来自“您的本地网站”。

    如果最终用户必须能够看到您的资产,他们必须能够通过 URL 访问它们,这意味着他们在“直接输入 URL”时也能够看到它们。那里没有技术差异。

    【讨论】:

    • 这是否意味着即使他们没有登录,我也无法阻止他们访问某些资产?
    • 不,您可以单独授权每个请求,包括对资产文件的请求。但是,如果您在 PHP 中管理您的授权,则必须通过 PHP 代理所有请求。例如。 /getasset.php?file=foo.css.
    猜你喜欢
    • 1970-01-01
    • 2012-01-19
    • 2016-01-04
    • 2018-12-20
    • 2019-09-17
    • 1970-01-01
    • 1970-01-01
    • 2016-03-16
    • 1970-01-01
    相关资源
    最近更新 更多