我试图限制公众访问我的 WordPress 网站上 /wp-content/uploads/wpforms/ 文件夹中的所有文件,但我无法找到有效的解决方案。我想确保只有登录的用户才能查看或下载此文件夹中的文件。
我尝试过各种 .htaccess 解决方案,包括阻止或重定向访问,但似乎都不适用于 PDF 等文件,这些文件仍然可以通过其 URL 直接访问。
这就是我需要的:
是否有特定的 .htaccess 规则或自定义 PHP 函数可以实现此目的?我感谢您提供的任何建议或示例代码!
提前致谢!
你可以尝试这样的规则:
# Deny access to all files in the performs directory
<Directory "wp-content/uploads/wpforms">
Order Deny, Allow
Deny from all
</Directory>
此规则可以放置在您的应用程序的 webroot 中,但我最有可能建议您尝试将 htaccess 放置在此路径中,特别是“wp-content/uploads/wpforms”,并放置类似的规则将阻止当前目录中的所有访问:
Deny from all
此外,对于 PDF 文件,您可以使用:
<FilesMatch "\.pdf$">
Order Deny,Allow
Deny from all
</FilesMatch>
正如您所提到的,您已经尝试了多个规则,但没有一个起作用,这主要发生在通过某些 CDN 或代理服务器提供静态内容时,因为在这种情况下,htaccess 规则不会起作用。仅当请求由 Apache2 提供服务时它们才会起作用。您必须检查并确保 apache 提供 PDF 等静态内容。一些托管使用反向代理设置来提供来自不同服务器(例如 Nginx)的静态内容,其中此问题最常见,htaccess 规则不适用于静态内容。