阻止直接 URL 输入,但授予本地主机访问权限


Prevent Direct URL input but grant Localhost access

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

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错误。

现在我不太清楚这些台词是什么意思,或者如何调整它们,所以我无法分辨对错。有人可以帮助我并告诉它实际上做了什么吗?谢谢!

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

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