如何理解为什么您的永久链接在 WordPress 中不起作用
已发表: 2021-12-27许多网站任务都集中在搜索引擎优化 (SEO) 上,因为它可以提高您的知名度和搜索排名。 您的 SEO 策略的一部分应该基于您的 URL 结构,尽管如果您的永久链接在 WordPress 中不起作用,您将难以降低流量数据。
很容易知道您的永久链接何时损坏,但不太容易理解的是如何修复它。 大多数时候,您必须跳入服务器配置文件并进行一些更改。 不过,从 WordPress 中快速重置可能就是您所需要的。
在接下来的几节中,我们将向您展示当您的永久链接在 WordPress 中不起作用时该怎么做。 首先,我们将更多地讨论损坏的永久链接及其外观。
WordPress中损坏的永久链接是什么样的
无论您使用哪种服务器或其设置如何,损坏的永久链接看起来都一样。 在大多数情况下,您会看到您的主页是完美的,而其他页面显示 404 错误:

对于某些特定情况——例如,网站中不存在的合法 URL——您可以将 404 错误重定向到您的主页。 但是,在许多情况下,这并不是一个永久的解决方案,因为您经常会遇到未被发现的潜在问题。
更重要的是,如果您的永久链接在 WordPress 中不起作用,除非您浏览您的网站,否则您将一无所知。 当用户向您发送通知时,您可能第一次发现问题。 这不利于用户体验 (UX),也不利于您的声誉。
为什么您的永久链接在 WordPress 中不起作用
WordPress 中的插件和永久链接更像是您网站的“一劳永逸”方面。 虽然您可以逐个发布编辑 slug,但您可以在初始 WordPress 安装过程之后设置全局永久链接结构。 推荐的典型做法是在此之后保留它们,因为它会影响您的 SEO。
因此,WordPress 中损坏的永久链接更难修复,因为您不会直接参与破坏它们。 相反,还有其他一些途径可以探索:
- 如果您安装新插件或更改旧插件的设置,您可以间接更改永久链接。 对于那些挂钩到您的服务器配置文件的插件来说尤其如此。
- 虽然机会很小,但一些核心、主题和插件更新会破坏您的永久链接。 这就是为什么您需要一个干净且最新的备份的原因之一(稍后会详细介绍)。
- 说到这一点,如果您必须使用备份来恢复您的网站,这也可能会破坏您的永久链接结构。 这也适用于迁移您的网站。
不过,您的永久链接在 WordPress 中无法正常工作的原因之一是更常见的:手动编辑您的服务器配置文件。 如果您决定修改这些文件,这会造成与冲突插件相同的损害。
无论错误的原因是什么,您都需要着手修复它。 现在您知道了原因,您可以开始挖掘并发现问题所在。
修复损坏的 WordPress 永久链接需要什么
如果您还没有 twigged,您将需要跳转到服务器的核心文件。 正因为如此,得到你需要的一切,准备好摇滚乐是件好事。 这是您需要准备的元素清单:
- 对您的服务器进行管理访问,以便使用其文件。 在大多数情况下,这不需要您的输入 - 特别是如果您是网站所有者。
- 您的服务器凭据,特别是登录详细信息。 您可以在主机控制面板或提供商的电子邮件中找到这些信息。 如果您找不到凭据,您的主机将能够告诉您它们在哪里。
- 安全文件传输协议 (SFTP) 客户端,例如 Cyberduck、FileZilla 或 Transmit。 它们中的每一个都能够在您的服务器上进行简单的文件浏览。
- 使用 SFTP 不会引起问题的技能。 几乎不用说,您会想知道如何在整个本教程中使用 SFTP。
- 对您的网站和可能的服务器进行干净、最新和完整的备份。 如果您因为持续(或引入)错误而需要恢复,您的备份将成为您拥有的最有价值的文件。
虽然有可选工具,例如文本编辑器,但它们不是必需的。 上面的列表将是您修复在 WordPress 中不起作用的永久链接所需的全部内容。
如何修复在 WordPress 中不起作用的永久链接
准备好所需的所有工具、技能和服务后,您就可以开始工作了。 在接下来的几分钟内,我们将向您展示如何通过以下方式修复在 WordPress 中不起作用的永久链接:
- 我们将从 WordPress 仪表板重置永久链接,这需要几秒钟的时间。
- 您将检查可能影响您的永久链接的插件的不兼容性。
- 对于 Apache 服务器,我们将向您展示如何解决您的永久链接问题。
- 我们还将向您展示 Nginx 服务器的相同内容,因为它们同样(如果不是更)流行。
在本文结束时,您将拥有正确的知识,以确保您可以解决任何与永久链接相关的问题。 有很多事情要做,所以我们将从 WordPress 本身开始。
1. 在 WordPress 中重置您的永久链接
希望在 WordPress 仪表板中快速重置您的永久链接将解决您遇到的任何问题。 这应该需要几秒钟,因为这是解决永久链接问题的直接方法,我们建议先这样做。
首先,前往 WordPress 中的“设置”>“永久链接”页面:

对于大多数现代 WordPress 安装,您将拥有帖子名称永久链接结构。 不过,现在我们需要临时更改它。 为此,请检查任何其他单选按钮。 如果您想非常谨慎地保持 URL 结构不变,您可能需要选择Custom Structure ,并使用/%postname%/
标签:

接下来,保存您的更改,重新选择原始结构(在本例中为Post name ),然后再次保存您的更改。 这应该会触发您的永久链接的重置,因此请检查您的网站以及您是否已解决问题。
2. 检查插件冲突和不兼容性
修复在 WordPress 中不起作用的永久链接的下一个方法是更直接地采取流行的步骤来修复许多 WordPress 问题。 您的插件(当然)会影响您网站的无数区域,以至于流氓插件可能会导致您的永久链接出现问题。
此阶段的标准方法是通过 SFTP 登录您的服务器,但在这种情况下我们不需要。 相反,前往 WordPress 中的插件 > 已安装插件页面:

在此屏幕上,选择每个插件的每个复选框——您可以使用顶部的全局复选框以节省时间——然后从下拉批量操作菜单中选择停用:

这将关闭每个插件,但也有望解决影响您网站的永久链接问题。
接下来,依次启用每个插件,直到您发现永久链接不再起作用。 找到插件后,再次将其停用,然后将您的网站恢复到原来的样子,避免有问题的插件。
此时,您有几个选择:
- 如果您不再需要它,请完全删除该插件。
- 寻找替代方案,从 WordPress 插件目录开始。
- 联系开发人员让他们知道并要求修复。
在任何情况下,您都希望保持禁用插件,直到您有解决方案,因为您不希望您的永久链接保持损坏。

3. 配置你的 Apache 服务器
虽然它们现在不像以前那样流行,但 Apache 服务器仍然是托管您网站的可靠方式。 更重要的是,它们对于普通用户来说很容易管理(有缺点,但这是另一篇文章)。
因此,让我们看一下您可以执行的一些任务,以使您的 WordPress 永久链接再次工作。
使用您的.htaccess文件让您的永久链接再次工作
就像在 WordPress 中切换不同的永久链接结构一样,您也可以重置您的.htaccess文件。 对于不知情的人,这是一个配置文件,可帮助您的服务器管理其内容。 您可以使用新指令对其进行编辑,但在这种情况下,我们希望禁用它(或者至少,不要让服务器临时使用它)。
您可以使用新指令编辑.htaccess文件,但在这种情况下,我们希望禁用它(或者至少,不要让服务器临时使用它)。
为此,您需要使用之前获得的凭据和您选择的 SFTP 客户端登录到您的服务器。 进入后,您将需要导航到正确的站点。 如果它是您服务器上唯一的一个,那么这应该不会太难。 但是,对于多个站点,请查找具有特定名称的内容。
如果您看不到站点的名称,则可能是它是您服务器的主要安装。 在这种情况下,请查找www 、 root 、 public_html或类似的东西。 您网站的文件将在其中。
一旦你在正确的地方,寻找你的.htaccess文件。 它应该在最顶层的目录中:

虽然欢迎您备份此文件,但它将保留在您的服务器上,但名称不同。 为此,请右键单击该文件,然后从上下文菜单中找到重命名(或类似)选项:

这将导致 WordPress 跳过.htaccess文件,就好像它不存在一样。 从这里开始,您需要按照我们指南中的第一步重置您的永久链接。 这将在您的服务器上创建一个全新的.htaccess文件,此时您可以测试您的永久链接是否不起作用。
如果它们确实有效,那么您的.htaccess文件中的某些内容将导致您的永久链接错误。 您可能需要执行一些剪切和粘贴工作来找出导致问题的行,但是因为您有一个全新的.htaccess文件可以使用,所以可能没有必要。
将AllowOverride规则添加到您的 Apache 配置中 文件
对于下一个技巧,您需要位于服务器的根文件夹中。 这是您可以访问的最高级别,请注意某些主机可能不允许您这样做。 因此,如果您使用共享服务器,这将不是您的选择。 但是,管理服务器或使用虚拟专用网络 (VPN) 的人员可以执行以下操作。
你会知道你是否在正确的地方,因为会有一个etc文件夹。 虽然有些服务器会有etc/httpd/httpd.conf
路径和文件,但 Linux 服务器可能会使用etc/apache2/apache2.conf
:

您需要在apache2.conf文件中添加一个规则,使您能够在每个目录的基础上覆盖服务器的某些方面。 我们不打算在这里讨论这个细节,因为你不需要了解其中的复杂性。 但是,在尝试此操作之前,您需要确保备份。
回到您的 SFTP 客户端,导航到apache2.conf文件,然后在您的文本编辑器中打开它。 在其中,查找以下代码套件:
<Directory /var/www/> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory>
您需要将AllowOverride None
行更改为AllowOverride All
。 保存更改后,您需要检查您的永久链接是否有效。 如果没有,您可能需要重新启动服务器。 这是一种使用安全外壳 (SSH) 访问的高级技术。 我们在博客的另一篇文章中对此进行了介绍。
当您在服务器中时,输入sudo systemctl restart apache2
以重新启动它。 由于不同主机的复杂性,如果您遇到任何问题,您会想与他们交谈。 许多主机都有自定义方式来访问您的服务器,您会希望找到最优化的方式。
4. 配置你的 Nginx 服务器
与 Apache 的锡顶 Hot Rod 相比,Nginx 是一款超级光滑的赛车。 因此,它拥有大量粉丝,与竞争对手相比拥有很大的市场份额。
这里的缺点是查找您需要的文件比其他服务器类型更棘手。 尽管如此,它仍然是可能的,所以我们将向您展示如何修复您的永久链接在 Nginx 服务器中不起作用。
找到你的 Nginx 配置文件
首先,您需要找到正确的配置文件。 您可能需要在此处咨询您的主机以了解服务器上的确切位置。 对我们来说,该文件位于etc/nginx/site-enabled/
目录中,但您的可能会有所不同。
进入后,查找名为default.conf的文件,或以您的站点命名的文件——再次,如果需要,请咨询您的主机。 Nginx 配置文件使用代码块来定义不同的规则,你会知道文件是否正确,因为会有一个以server {
开头的块。
当你找到这个块时,你可以根据你的站点是在根目录还是子目录来修改它。
修改你的 Nginx 配置文件
打开default.conf文件,将光标悬停在server
块周围,寻找另一个缩进块,这次是location /
。 在其中,添加以下内容:
try_files $uri $uri/ /index.php?$args;
完整块应类似于以下内容:
location / try_files $uri $uri/ /index.php?$args;
这仅适用于您的站点位于服务器的根目录中。 如果您的站点位于子目录中——也许它是许多站点之一——您需要将该位置指向该子目录:
location /subdirectort/ try_files $uri $uri/ /subdirectory/index.php?$args;
保存更改后,使用sudo systemctl reload nginx
重新启动服务器。 与 Apache 说明一样,您可能无法执行此操作,在这种情况下,请与您的主机交谈并请他们帮助您。
包起来
您的永久链接代表访问您网站上的帖子和页面的人类可读方式。 如果他们出错了,后果可能会使您的网站瘫痪。 通常,您首先会知道您的永久链接在 WordPress 中不起作用的是您的用户会遇到大量 404 错误。
要修复它,最好的情况是在 WordPress 中重置您的永久链接。 但是,在许多其他情况下,您必须打开服务器并删除(或以其他方式修改)文件才能使事情再次正常运行。 这篇文章应该提供你需要的技能和工作流程,以使船舶正确并继续航行。
您的永久链接在 WordPress 中不起作用是您之前遇到过的问题,还是您现在遇到的问题? 在下面的评论部分分享您的情况和任何补救建议!