如何结束 WordPress 覆盖 .htaccess 文件
已发表: 2023-02-23不久前,我们的一位读者问是否可以阻止 WordPress 覆盖您的 .htaccess 文件中的个性化代码?
WordPress 与许多插件一起将自定义配置添加到 .htaccess 配置文件。 如果您有额外的自定义代码到 .htaccess,那么您可能会担心它会被覆盖或删除。
在这篇文章中,我们将清楚地向您展示如何阻止 WordPress 覆盖 .htaccess 文件。

为什么 WordPress 会覆盖 .htaccess 文件?
您的 .htaccess 文件是一个令人印象深刻的配置文件,其中包含有关您的 WordPress 网站的重要选项。 它具有告知您的托管服务器如何处理您的网页的原则。
WordPress 使用 .htaccess 文件来存储其永久链接选项。 每当您修改或重新生成永久链接时,WordPress 都会自动用新选项覆盖 .htaccess 中的旧配置。
一些 WordPress 插件还有助于将其选项保存在 .htaccess 中。 例如,W3 Overall Cache 插件将修改您的 .htaccess 文件以配置作为插件一部分的缓存和优化资源。
最后,您可以对 .htacess 进行自己的个性化修改,以控制您的网页的工作方式。 例如,您可以将定制的规则添加到文件中以保护您的管理位置、继续保护您的网站免受黑客攻击、设置重定向、禁止可疑 IP 地址等。
一些最终用户担心,如果他们将自己定制的规则合并到 .htaccess 中,那么当 WordPress 用新配置覆盖该文件时,它们很可能会被删除。 其他用户希望手动配置 .htaccess 并且根本不允许 WordPress 对其进行写入。
有了剩下的报告,让我们看看如何阻止 WordPress 覆盖您的 .htaccess 文件。 只需使用下方的快速返回链接即可跳转到您感兴趣的区域。
如何防止 WordPress 覆盖您的 .htaccess 指南
好消息是,如果您了解 .htaccess 文件的执行方式,那么您可以放心,您的自定义过程不会被覆盖。
这是因为文件中将被 WordPress 或您的插件修改的部分已被明显标记。 只需确保您确实没有为人员部分增加代码。
不要修改 WordPress 标记内的代码
正如我们之前报道的那样,WordPress 使用 .htaccess 来存储有助于 Web 优化的 URL 结构的配置。 每当您调整永久链接配置时,它将保存到文件中的代码将被快速覆盖和更新。
正如您在下面的屏幕截图中看到的那样,WordPress 会将此事实保存在两个标记之间, # Start off WordPress
和# Finish WordPress
。

在这些人物标记中发现警告:
“BEGIN WordPress”和“END WordPress”之间的指令(行)是动态生成的,实际上只能通过 WordPress 过滤器进行修改。 对这些标记之间的指令所做的任何调整都将被覆盖。
这表明 WordPress 不会覆盖或修改您在这些标记之外添加的任何代码。 用户通常将他们的自定义代码合并到文件的顶部,高于# Start WordPress
标记。
真的不要修改插件标记内的代码
当插件将其选项保存到 .htaccess 时,它还会在看起来像# Start out Plugin
和# Conclusion Plugin
标记之间发现它。
例如,如果您安装并安装了 W3 Total Cache 插件以提高您网站的速度和效率,那么它将在# Get started W3TC Browser Cache
和# Conclude W3TC Browser Cache
标记之间将规则添加到 .htaccess。

每当您更改插件的配置时,这些策略都会被覆盖,因此您必须彻底避免将您自己的自定义 .htaccess 规则包含在这些用户标记中。
为您的定制代码生成标记
在异常情况下,一个行为异常的插件可能会修改其# Begin
和# Conclude
标记所在范围之外的代码。 另一方面,它通常不会修改位于 WordPress 或其他插件使用的标记之间的代码。
如果您担心行为不佳的插件会覆盖您的代码,那么您可以将自己的标记插入到 .htaccess 文件中。
例如,您可以在 .htaccess 文件的主目录添加# Start off MyCustomCode
和# End MyCustomCode
标记,然后在这些标记之间添加您的个性化原则。

如果您还需要将代码插入到 .htaccess 的末尾,那么您可以在那里插入一个独特的标记。 只要绝对确保给他们唯一的名字。 例如,您可以使用“MyCustomCodeTop”和“MyCustomCodeBottom”。

如何阻止 WordPress 修改 .htaccess
现在您了解了 .htaccess 的工作原理,您可以确信您的自定义代码不会被 WordPress 或您的插件覆盖。
尽管如此,一些开发人员和最先进的最终用户希望阻止 WordPress 对 .htaccess 进行任何更改。
例如,他们可能希望通过将配置手动输入 .htaccess 来创建永久链接。 在这种情况下,他们需要通过阻止 WordPress 将其拥有的永久链接选项保存到文件来避免冲突。
除非你知道你在做什么,否则我们真的不建议这样做,主要是因为它可能会导致突然的后果。 即便如此,也可以通过更改文件的权限或使用代码来完成。
阻止 WordPress 使用文件权限更改 .htaccess
阻止 WordPress 修改 .htaccess 的唯一方法是使文件仅供检查。 为此,您必须使用 FTP 客户端或您的 WordPress 网络托管公司提供的文件管理器更改文件权限。
您会在 WordPress 安装的根目录中找到 .htaccess 文件。 即将到来,您应该合适 - 只需单击文件并选择“文件权限”。

这将显示一个弹出窗口,您可以在其中修改文件的属性。
默认环境将为 644,但您可以通过立即在“数值”主题中键入或生成保证仅检查“读取”容器来将其更改为 444。

只需单击“确定”按钮后,该文件将只供检查,不能修改。
当然,这必然意味着您也无法创建文件。 当您想进行更改时,您需要将文件权限短暂地重新设置回 644。
使用代码阻止 WordPress 更改 .htaccess
另一个答案是使用让 WordPress 知道不要创建 .htaccess 文件的代码片段。 如果你想阻止 WordPress 修改 .htaccess 而不阻止你的插件,这是有益的。
请注意:修改任何核心 WordPress 数据文件都是危险的。 即使是一个小错误也会在您的网站上引发关键错误。 这就是为什么我们只为最先进的人推荐这种技术。
仅在 wp-config.php 文件的末尾添加附加代码片段。 如果您需要帮助,请记住参考我们关于如何在 WordPress 中编辑 wp-config.php 文件的指南。
incorporate_filter('got_rewrite', '__return_false')
在您执行此操作后,WordPress 将不再生成 .htaccess 文件。
当 WordPress 根本无法更改 .htaccess 时显示错误消息
如果您在 .htaccess 设置为仅浏览时更改永久链接配置,则会显示错误信息。
在选项 » 永久链接页面的顶部,您将看到信息“您现在真的应该更新您的 .htaccess 文件。”

这让您知道 WordPress 无法修改 .htaccess 文件。
通常,这就是您的意思。 但是,如果您确实希望将 WordPress 永久链接配置增加到 .htaccess,那么您将需要手动进行。
在设置 >> 永久链接网站的底部,您会看到一条不同的错误消息,表明您的 .htaccess 文件不可写。 在此之下,您将看到需要附加到 .htaccess 的指南。

如果您希望插入所有这些配置,那么您将需要再次临时将 .htaccess 文件权限调整为 644,以便可以对其进行编辑。 之后,您应该将规则粘贴到文件的 WordPress 开始和停止标记中,替换那里现有的代码。
完成后,只需将价格再次设置回 444 并保存文件。 它将再次不可写。
我们希望本教程能帮助您发现如何阻止 WordPress 覆盖 .htaccess 文件。 您可能还想研究如何在 WordPress 中整合驱动器通知,并查看我们最好的 WordPress 搜索引擎优化插件和工具的专业列表。
如果您喜欢这份报告,请订阅我们的 YouTube 频道以获取 WordPress 在线视频教程。 您还可以在 Twitter 和 Facebook 上找到我们。