首页 » 博文 » wpbeginner » 最佳教程 » 如何阻止 WordPress 覆盖 .htaccess 文件

如何阻止 WordPress 覆盖 .htaccess 文件

最近,我们的一位读者询问是否可以阻止 WordPress 覆盖 .htaccess 文件中的自定义代码。

WordPress 以及多个插件将自定义设置添加到 .htaccess 配置文件中。如果您已将自己的自定义代码添加到.htaccess,那么您可能会担心它会被覆盖或删除。

在本文中,我们将向您展示如何阻止 WordPress 覆盖 .htaccess 文件。

如何阻止 WordPress 覆盖 .htaccess 文件

为什么 WordPress 会覆盖 .htaccess 文件?

您的.htaccess文件是一个功能强大的配置文件,它存储有关您的WordPress 网站的重要设置。它包含告诉您的托管服务器如何处理您的站点的规则。

WordPress 使用 .htaccess 文件来存储其永久链接设置。每当您更改或重新生成永久链接时,WordPress 都会自动使用新设置覆盖 .htaccess 中的旧设置。

一些 WordPress 插件还将其设置保存在 .htaccess 中。例如,W3 Total Cache 插件将修改您的 .htaccess 文件,以便配置属于插件一部分的缓存和优化工具。

最后,您可以对 .htacess 进行自己的自定义更改,以控制网站的工作方式。例如,您可以向文件添加自定义规则,以保护您的管理区域、保护您的网站免受黑客攻击、设置重定向、禁止可疑 IP 地址等。

一些用户担心,如果他们将自己的自定义规则添加到 .htaccess,那么当 WordPress 用新设置覆盖该文件时,这些规则可能会被删除。其他用户更喜欢手动配置 .htaccess 并且根本不让 WordPress 写入它。

话虽如此,让我们看看如何阻止 WordPress 覆盖您的 .htaccess 文件。只需使用下面的快速链接即可跳转到您感兴趣的部分:

  1. 如何阻止 WordPress 覆盖您的 .htaccess 规则
  2. 如何阻止 WordPress 修改 .htaccess

如何阻止 WordPress 覆盖您的 .htaccess 规则

好消息是,如果您了解 .htaccess 文件的工作原理,那么您可以确信您的自定义规则不会被覆盖。

这是因为 WordPress 或您的插件将更改的文件区域已被明确标记。只需确保您没有向这些区域添加代码即可。

不要修改 WordPress 标记内的代码

正如我们之前所说,WordPress 使用 .htaccess 来存储SEO 友好的 URL结构的设置  。每当您更改永久链接设置时,它保存到文件的代码都会自动覆盖和更新。

正如您在下面的屏幕截图中看到的,WordPress 将此信息保存在两个标记之间,# BEGIN WordPress# END WordPress

.htaccess 中的 WordPress 标记

请注意这些标记内的警告:

“BEGIN WordPress”和“END WordPress”之间的指令(行)是动态生成的,只能通过 WordPress 过滤器进行修改。对这些标记之间的指令所做的任何更改都将被覆盖。

这意味着 WordPress 不会覆盖或修改您在这些标记之外添加的任何代码。用户通常将自定义代码添加到文件顶部的# BEGIN WordPress标记上方。

提示: .htaccess 是一个隐藏文件,位于 WordPress 网站的根文件夹中。如果您找不到它,请查看我们的指南,了解为什么在 WordPress 网站上找不到 .htaccess 文件

不要修改插件标记内的代码

当插件将其设置保存到 .htaccess 时,它还会将其放置在类似于# BEGIN Plugin和 的标记之间# END Plugin

例如,如果您安装并设置 W3 Total Cache 插件# BEGIN W3TC Browser Cache来提高网站速度和性能,那么它将在 .htaccess和# END W3TC Browser Cache标记之间添加规则。

.htaccess 中的插件标记示例

每当您更改插件的设置时,这些规则都会被覆盖,因此您需要小心,不要在这些标记之间添加您自己的自定义 .htaccess 规则。

为您的自定义代码创建标记

在极少数情况下,行为不当的插件可能会修改其标记之外的# BEGIN代码# END。但是,它通常不会修改 WordPress 或其他插件使用的标记之间找到的代码。

如果您担心行为不当的插件会覆盖您的代码,那么您可以将自己的标记添加到 .htaccess 文件中。

例如,您可以在 .htaccess 文件顶部键入# BEGIN MyCustomCode和标记,然后在这些标记之间添加您自己的自定义规则。# END MyCustomCode

您可以在 .htaccess 中为自定义规则创建自己的标记

如果您还需要将代码添加到 .htaccess 的末尾,那么您可以在那里添加一组不同的标记。只是一定要给它们起不同的名字。例如,您可以使用“MyCustomCodeTop”和“MyCustomCodeBottom”。

如何阻止 WordPress 修改 .htaccess

现在您已经了解了 .htaccess 的工作原理,您可以确信您的自定义代码不会被 WordPress 或您的插件覆盖。

然而,一些开发人员和高级用户希望阻止 WordPress 对 .htaccess 进行任何更改。

例如,您可能希望通过将设置手动键入 .htaccess 来创建永久链接。在这种情况下,您需要通过阻止 WordPress 将其自己的永久链接设置保存到文件中来避免冲突。

除非您知道自己在做什么,否则我们不建议这样做,因为这可能会导致意想不到的后果。但是,可以通过更改文件的权限或使用代码来完成。

使用文件权限阻止 WordPress 更改 .htaccess

阻止 WordPress 修改 .htaccess 的一种方法是将该文件设为只读。为此,您需要使用FTP 客户端或WordPress 托管提供商提供的文件管理器更改文件权限。

您将在 WordPress 安装的根目录中找到 .htaccess 文件。接下来,您应该右键单击该文件并选择“文件权限”。

从 FTP 客户端的菜单中选择文件权限

这将显示一个弹出窗口,您可以在其中更改文件的属性

默认设置为 644,但您可以通过直接在“数值”字段中键入或确保仅选中“读取”框来将其更改为 444。

将 .htaccess 文件权限更改为 444 或只读

单击“确定”按钮后,该文件将为只读且无法修改。

当然,这意味着您也无法写入该文件。当您想要进行更改时,您需要暂时将文件权限设置回 644。

使用代码阻止 WordPress 更改 .htaccess

另一种解决方案是使用代码片段,让 WordPress 知道不要写入 .htaccess 文件。如果您想阻止 WordPress 修改 .htaccess 而不阻止您的插件,这非常有用。

注意:编辑任何核心 WordPress 文件都可能很危险。即使是一个小错误也可能会导致您的网站出现重大错误。这就是为什么我们只向高级用户推荐此方法。

只需在 wp-config.php 文件末尾添加以下代码片段即可。如果您需要帮助,请参阅我们有关如何在 WordPress 中编辑 wp-config.php 文件的指南:

add_filter('got_rewrite', '__return_false');

WPCode与 ❤️ 主办

在 WordPress 中一键使用

完成此操作后,WordPress 将不再写入 .htaccess 文件。

当 WordPress 无法更改 .htaccess 时显示错误消息

如果您在 .htaccess 设置为只读时尝试更改永久链接设置,则会显示错误消息。

在“设置”»“永久链接”页面的顶部,您将看到消息“您应该立即更新您的 .htaccess 文件”。

无法访问 .htaccess 时的固定链接设置错误消息

这让您知道 WordPress 无法修改 .htaccess 文件。

通常,这就是您的意图。但是,如果您确实希望将 WordPress 永久链接设置添加到 .htaccess,则需要手动执行此操作。

在“设置”» “永久链接”页面的底部,您将看到另一条错误消息,指出您的 .htaccess 文件不可写。在其下方,您将看到需要添加到 .htaccess 的规则。

如果需要,您需要手动添加到 .htaccess 的规则列表

如果您希望添加这些设置,则需要暂时​​将 .htaccess 文件权限更改回 644,以便可以对其进行编辑。之后,您应该将规则粘贴到文件的 WordPress BEGIN 和 END 标记之间,替换已有的代码。

完成后,只需将值设置回 444 并保存文件即可。它将再次变得不可写。

我们希望本教程可以帮助您了解如何阻止 WordPress 覆盖 .htaccess 文件。您可能还想查看有关如何在 WordPress 中添加推送通知的指南以及我们专家精选的最佳 WordPress SEO 插件和工具

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

Scroll to Top