在 Apache2 中,我创建了一个经过身份验证的文件夹,在我的配置文件中使用以下条目正确创建:
<Directory "/var/www/html/private">
AuthType Basic
AuthName "Restricted Content"
AuthUserFile /etc/apache2/.htpasswd
Require valid-user
</Directory>
目前,当我尝试通过 Web 浏览器导航到我知道位于该 protected 文件夹中的文件时,我会收到输入用户名和密码的提示,这正是我想要发生的。但是,当我访问我网站上的任何 HTML 文件(例如直接位于我的 HTML 文件夹或另一个目录中的一个)时,它引用了该私有(private)文件夹中包含的 javascript,它还会提示我输入用户名和密码,这不是我想要的是。我怎样才能解决这个问题?
最佳答案
我已经更新了我的答案,因为通过基本身份验证这真的不可能。
基本身份验证通常用于 HTML 文件等正面页面,不适用于外部 Assets 。
为了解决外部 Assets 文件夹,您需要使用您选择的编程语言(如 Python、PHP 或 NodeJS)执行类似操作。
假设我们请求/my/js-file.js;我们可以用这个名字创建一个 URL,而不是公开暴露 JS 文件本身。如果用户已登录,则通过该 URL 返回 JS 文件内容。如果不是,则返回“无效 token ”而不是 JS 文件内容。
Stackoverflow 上有许多 Assets 可以帮助您创建它。搜索“如何通过身份验证保护 JS 文件”。
关于html - 无法从 html apache2 中受密码保护的目录访问另一个文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63802979/