如何在没有插件的情况下限制对 /wp-content/uploads/wpforms/ 文件夹中所有文件的访问(使用 .htaccess 或代码)?

问题描述 投票:0回答:1

我试图限制公众访问我的 WordPress 网站上 /wp-content/uploads/wpforms/ 文件夹中的所有文件,但我无法找到有效的解决方案。我想确保只有登录的用户才能查看或下载此文件夹中的文件。

我尝试过各种 .htaccess 解决方案,包括阻止或重定向访问,但似乎都不适用于 PDF 等文件,这些文件仍然可以通过其 URL 直接访问。

这就是我需要的:

  • 限制 /wp-content/uploads/wpforms/ 文件夹内的所有文件被公开访问。
  • 理想情况下,我想要一个使用 .htaccess 或 PHP 而不使用任何第三方插件的解决方案。
  • 如果用户尝试访问这些文件,我可以完全阻止这些文件或将用户重定向到特定页面。

是否有特定的 .htaccess 规则或自定义 PHP 函数可以实现此目的?我感谢您提供的任何建议或示例代码!

提前致谢!

wordpress .htaccess wpforms
1个回答
0
投票

你可以尝试这样的规则:

# 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 规则不适用于静态内容。

© www.soinside.com 2019 - 2024. All rights reserved.