【问题标题】:Override All Wordpress htaccess on server覆盖服务器上的所有 Wordpress htaccess
【发布时间】:2015-01-30 23:05:30
【问题描述】:

为此,我们尝试了一些在 Google 周围发现的方法,但似乎都没有任何效果。

问题

我们的服务器上有大约 500 个 Wordpress 网站。我们正在尝试使用全局 htaccess 将每个实例的所有 wp-login.php 页面锁定到我们办公室的 IP 地址 - 但单个 Wordpress htaccess 文件正在覆盖它。

环境

我们托管在运行 Plesk 的 AWS Linux 服务器上,以管理每个网站/Wordpress 实例。

问题

有没有办法我们可以在服务器上设置一个 htaccess 文件来锁定所有的 Wordpress 登录页面,而不需要单独的 htaccess 文件覆盖它?


任何帮助或建议的好方法,将不胜感激。

提前致谢

【问题讨论】:

    标签: wordpress .htaccess security


    【解决方案1】:

    我假设您已经阅读了RewriteOptions 指令。正如我在Tips for debugging .htaccess rewrite rules 中解释的那样,正如您在WP 中发现的那样,它生成自己的.htaccess 文件,默认会扫描当前路径以查找.htaccess,并应用最低的重写规则除非更高的一个指定 RewriteOptions Inherit 在这种情况下,它的规则 在子范围中指定的规则之后执行,这是 WP 访问文件中的 catch-22 生成 [L] 标志它的所有执行路径都会阻止父规则触发。

    所以答案是使用 Apache 机制而不是重写,您可以使用 SetEnvIf 指令:

    SetEnvIf Remote_Addr "!^192\.168\." forbidden
    <Files *>
      Order allow,deny
      Allow from all
      Deny from env=forbidden
    </Files> 
    

    SetEnvIf Remote_Addr "!^192\.168\." forbidden
    <Directory /var/www/wproot>
      Order allow,deny
      Allow from all
      Deny from env=forbidden
    </Directory> 
    

    显然,您需要将 Regexp 更改为您的本地需求,但这应该可以解决问题。 Apache 文档对此提供了其他变体,但您应该能够找到适合您的情况的变体。只需将其放在每个虚拟服务器上下文中 - 如果需要,在 Directory(Match) 指令中 - 或在公共父目录 .htaccess 文件中。

    【讨论】:

    • 谢谢。我似乎无法接受,我试图使用这样的通配符让它在所有站点中工作:SetEnvIf Remote_Addr "!^192\.168\." forbidden &lt;Directory /var/www/vhosts/*/httpdocs/wp-admin&gt; Order allow,deny Allow from all Deny from env=forbidden &lt;/Directory&gt;,它抛出了 500 错误。在这种情况下,是否可以一次覆盖所有站点?
    【解决方案2】:

    我最终将它与您的第一个建议一起使用,但实际上不需要 SetEnvIf 行,非常感谢!这是我在 /var/www/vhosts 文件夹中的 .htaccess,供其他需要的人使用:

    <files wp-login.php>
      order deny,allow
      deny from all
      Allow from xxx.xxx.xxx.xxx
    </files>
    

    漂亮而简单,与我之前尝试的路线完全不同。

    【讨论】:

    • 糟糕的是,我忘记了Allow from 比裸 IP 更灵活。它还将允许部分 IP 地址、域名(或完全限定或部分)或其列表。解决方案的许多途径:)
    猜你喜欢
    • 1970-01-01
    • 2014-02-19
    • 2012-02-07
    • 2017-10-16
    • 2021-05-03
    • 2020-12-13
    • 2014-08-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多