如何理解为什么你的永久链接在 WordPress 中不起作用


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

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

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

接下来,保存更改,重新选择原始结构(在本例中为帖子名称),然后再次保存更改.这应该会触发您的永久链接的重置,因此请检查您的网站以及您是否已解决问题.
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 中不起作用是您以前遇到过的问题,还是您现在遇到的问题?在下面的评论部分分享您的情况和任何补救建议!