标签: rewrite规则

  • 如何正确地配置WordPress固定链接设置

    000-WordPress-Permalinks

    正确地进行WordPress网站固定链接设置对于网站后续的运营至关重要。固定链接不仅会影响网站SEO排名,而且还会指引用户可以在您网站上的何处找到任何单独的内容。

    搜索引擎和访问者在https://example.comhttps://example.com/blog/category/post-title-with-keywords之间存在很大差异 。在本文中,我们将向您介绍配置WordPress固定链接设置的各种方法,这样您不仅能取悦搜索引擎爬虫,还能取悦真实访客。

    什么是固定链接?

    正如我们上面所说,固定链接是指向您的站点、博客文章、页面、类别、标签以及WordPress站点上的任何其他单独部分或分类法的固定URL。如果它可见,则有一个固定链接。您可以在WP仪表板中的设置 – 固定链接下为您的站点配置基本的固定链接结构 。

    001-WordPress-Permalinks

    在WordPress中,您可以在5种不同质量和用途的预设固定链接结构之间进行选择。这些中的每一个只会出现在主安装目录之后。因此,如果您已在example.com/blog中安装 ,这些将在此之后出现。如果你已经安装在根目录下,那么它会在TLD之后。

    • 朴素– WP使用查询字符串中的Post ID作为slug
    • 日期和名称型– 固定链接将由年、月、日以及文章标题组成
    • 月份和名称型– 同上,仅不包括日期
    • 数字型– 不使用查询字符串,而是使用通用档案固定链接下的文章ID
    • 文章名称– 在主域名之后只会使用文章标题

    您还可以使用10个不同的变量来设置自定义结构,这些变量会根据文章的元数据和发布信息而变化。其中一些比其他的更有用(和可用)。

    • %year% – 4位数字的发布年份
    • %monthnum% – 两位数的发布月份
    • %day% – 两位数的发布日
    • %hour% – 两位数,24 小时制
    • %minute% – 两位数的发布分钟
    • %second% – 这个文章发布的具体秒
    • %post_id% – WP数据库中的文章ID
    • %postname% – 您设置的或 WP默认为的文章名称 slug
    • %category% – 来自文章的完整类别slug  – 类别
    • %author% –用户个人资料下的作者姓名slug

    此外,如果您是主题或插件开发人员,您将需要熟悉 the_permalink()钩子。即使固定链接结构或单个URL发生变化,它也能让您直接进入WordPress本身以获取链接。

    在考虑固定链接时,请记住页面和文章的工作方式略有不同。文章使用您在Settings – Permalinks 中选择的任何结构 。但是,页面将始终使用“文章名称”选项。这是一件好事。这意味着页面的slug不会适应您所做的任何更改。如果您将来重组,您的“关于我”页面将永远不会显示为类似example.com/2022/06/about.html 的内容。

    说到slugs,WordPress中使用的有关URL的术语可能会令人困惑。一个固定链接是为您的网站的整个URL结构。除了slug之外,所有文章的固定链接都相同。然后,slug是标识特定内容的固定链接的最后部分。

    例如,这是特定文章的完整固定链接:example.com/blog/category/unique-post。但是,只有 /unique-post是slug,因为它是该单个内容的唯一标识符。Slug可以是您想要的任何东西,并且可以随时根据个人情况进行更改。即使您更改固定链接结构,Slug也保持不变。

    何时使用不同的固定链接结构

    (1)朴素

    WordPress默认使用朴素固定链接,这就是为什么我们建议在安装后立即配置您的WordPress固定链接结构。因为简单的固定链接,说得好一点,很糟糕。

    002-WordPress-Permalinks

    此版本的固定链接不仅不包含任何关键字(对 SEO 不利),而且不仅通过文章ID进行标识,而且还使用查询字符串进行标识。就像我们说的……不好。用户将无法记住文章ID,搜索引擎将看不到关键字或主题,并且常常会使搜索引擎认为您的网站不合法。

    什么时候应该使用朴素固定链接?

    几乎从来没有。很少有(如果有的话)Plain 比任何其他结构更有用的情况。即使 带有 %post_id% 的Custom也比Plain好。甚至这也是相当可怕的。

    (2)日期和名称,月份和名称

    无论是日期和名称月份和姓名固定链接结构有其用途。尽管对于大多数WordPress网站所有者而言,它们往往受到限制。

    003-WordPress-Permalinks

    如果您经营新闻网站或以任何方式及时制作内容,这种固定链接结构可能适合您。虽然Internet上的大多数内容发布时都会在页面的某处显示日期,但该日期通常会在内容更新时进行调整。如果您使用“日/月”和“名称”选项之一,即使您更新文章, 日期也永远不会更改

    这就是它最大的弱点。通常,您希望访问者能够看到文章的最新更新。您不希望他们看到过时的内容。或者更重要的是,您不希望他们认为内容已过时。即使文章本身的日期表示当前的月份和年份,如果URL固定链接显示该文章是在6年前创建的,他们能否确定内容确实是最新的?

    即使是这样,怀疑的幽灵也在那里,这会影响你的可信度。

    什么时候应该使用日/月和名称固定链接?

    如果您运营一个新闻或及时网站,其中日期对您的内容很重要,那么这种固定链接结构非常有效。当人们发现它时,它肯定会表明内容已经过时并且是档案的一部分。因为像这样的及时站点通常不会更新文章,而是发布关于该主题的新文章,所以这种固定链接配置有助于描述和组织信息。但是,如果您更新内容以使其常青,请避免使用此内容。

    (3)数字型

    与上面的默认普通结构非常相似,我们没有看到数字固定链接得到大量使用。坦率地说,因为它们不是很有用。

    005-WordPress-Permalinks

    此结构不会添加您无法使用自定义结构设置的任何内容(如上图所示)。因为它默认为 %post_id%变量,所以它不像具体标题名称那样对SEO友好。并且/archives /作为您网站的默认内容基础没有用。如果您想拥有这样的结构,请使用您想要的基础(例如/blog/)和一个符合SEO 和读者语义的变量对其进行自定义 。

    什么时候应该使用数字型固定链接?

    从来没有,真的。它在互联网的当前状态下没有多大用处。

    (4)文章标题

    文章标题远远高于所有固定链接结构中最有用的,而且它可能也是使用最广泛的。它并不适合每个场合,但在某种程度上对每个站点都有用。

    006-WordPress-Permalinks

    这个简单明了。当您创建文章时,WordPress会将其标题添加为slug。如果您将一篇文章命名为“如何自定义您的WordPress固定链接设置”,该软件会自动将该标题逐字设置为固定链接。您可以随时编辑永久链接slug(见下文)

    由于您使用的是Post Name永久链接结构,因此URL不会包含任何无关信息。没有日期,没有类别,什么都没有。这是一种简单、直接的方法,可以为您的用户创建易于记住的 URL,并且搜索引擎也可以轻松解析这些 URL。

    什么时候应该使用文章名称固定链接?

    如果您运行的网站没有大量自定义分类法或复杂的类别结构,这可能是您的最佳选择。它很简单,如果需要,可以像使用Pages一样轻松地使用 Posts。您可以使用像这样配置永久链接设置来创建可以定期调整和更新的登录页面或支柱文章/基础内容,但仍会在您需要时作为新内容出现在您网站的提要中。

    (5)自定义结构

    自定义结构固定链接配置让你在你想怎么你的网站出现完全控制。您不仅可以使用我们上面列出的变量(例如 %category%%postname%),还可以使用静态字符串。

    008-WordPress-Permalinks

    在上面的示例中,字符串 /articles/将作为slug的一部分放置,而不管安装目录如何(可能是 /blog/,就像我们在 Elegant Themes 中的那样)。在%category%%postname%变量将根据文章的类别(如果你有选择的倍数,只有主类别将在这里使用)发生变化,  %postname%是您在文章编辑器设置URL的slug.

    需要注意的一件事是,您必须在自定义结构中至少包含1个变量。如果您只包含一个字符串,WordPress将返回一个错误,提示“使用自定义固定链接时需要结构标签”。这是有道理的,因为WordPress不知道内容的个人标识符是什么。

    什么时候应该使用自定义结构固定链接?

    您可以在上面的部分中看到WordPress包含多少不同的变量。因此,当您需要或想要其他选项都没有提供的特定内容时,您应该使用自定义结构永久链接。如果您特别热衷于自定义分类法或在 URL 中使用尽可能多的关键字,请看一看。虽然像这样的永久链接更长,但它们可以让Google更好地了解您网站的结构。

    如何编辑固定链接Slug

    一旦您配置了WordPress固定链接设置,您唯一需要注意的另一件事就是确保每个文章最后都有正确的 slug。正如我们上面所说,slug是URL的最后一部分,它显示了单个内容标识符,可以是关键字或文章ID。

    默认情况下,WordPress包含文章的整个标题作为slug。如果您想在编辑文章时更改它,请导航到古腾堡编辑器中的固定链接元框(如下图所示),将URL的slug编辑为您想要的任何内容。如果您希望slug只是/wordpress-permalink-settings,您只需在URL的Slug字段中更改它以更新整体URL。

    007-WordPress-Permalinks

    如果您是Classic Editor用户,那也同样简单。只需单击文章标题字段下URL旁边的“ 编辑”按钮。

    010-WordPress-Permalinks

    之后就和古腾堡一样了。只需输入您想要的内容并按回车键即可。这样,您就已经配置了整个WordPress固定链接设置。

    设置固定链接出现404错误怎么办

    如果在设置固定链接后,文章页面无法正常打开,提示404错误怎么办?

    这多半是由于WordPress所在服务器没有正确配置rewrite规则所导致。不同的服务器(如Apache和Nginx)的rewrite规则配置不一致,如下:

    Nginx服务器rewrite规则配置

    一般目录为/usr/local/nginx/…,找到网站的conf或者rewrite规则的conf,添加以下代码行:

    location /
    {
    try_files $uri $uri/ /index.php?$args;
    }
    rewrite /wp-admin$ $scheme://$host$uri/ permanent;
    location /
    {
    try_files $uri $uri/ /index.php?$args;
    }

    rewrite /wp-admin$ $scheme://$host$uri/ permanent;

    location /
    {
    try_files $uri $uri/ /index.php?$args;
    }
    
    
    rewrite /wp-admin$ $scheme://$host$uri/ permanent;

    Apache服务器rewrite规则配置

    一般目录为/www/wwwroot/www.yourdomain.com,修改.htaccess文件添加以下代码行:

    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index.php$ – [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    </IfModule>
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index.php$ – [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    </IfModule>
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    </IfModule>

    小结

    固定链接不必令人困惑。事实上,它们是WordPress的一部分,如果操作正确,则真正做到一劳永逸。您绝对应该确保您的网站可以被用户和搜索引擎爬虫完全导航。自定义您的WordPress固定链接绝对是 WordPress 设置中最简单的部分之一,也是最重要的部分之一。

  • 如何修复WordPress出现无效固定链接问题

    错误类型:
    WP内部错误
    错误名称:
    固定链接无效
    英文名称:
    404 Page Not Found
    错误描述:
    由于Apache或者Nginx配置问题,导致WordPress固定链接无法正常打开。注:此404错误非页面不存在404错误。

    如何修复WordPress出现无效固定链接问题

    访问您的网站时遇到“ 404 Page Not Found ”错误?您可能遇到固定链接无效的问题。

    在本文中,我们将帮助您找到此错误背后的罪魁祸首,并为您提供有关如何修复它的全面指南。

    各种原因可能会触发您网站上的固定链接无效。

    • 新插件安装。您安装的新插件可能会干扰您的.htaccess文件。
    • 恢复备份或迁移WordPress。您最近恢复了备份或将站点切换到新域或服务器。
    • 更新。更新插件、主题或WordPress核心后出现的不兼容问题。
    • .htaccess文件中的更改。错误地更新或更改您的.htaccess文件。

    以下是有关如何修复WordPress中无效的固定链接的几种方法。

    处理此问题的最简单方法是重置永久链接结构:

    1. 导航到您的WordPress后台。转到设置>固定链接

    2. 选择另一种固定链接结构 -> Save Changes。例如,如果您当前正在使用日期和名称设置。将其更改为其他内容,例如Post name

    WordPress固定链接

    3. 完成后,将其更改回您的标准结构并再次点击保存更改。

    如果您仍然收到“404 Page Not Found”错误,让我们尝试其他剩余方法。

    上述办法的目的是触发WordPress的rewrite规则生成。

    2.禁用插件

    停用可能触发错误的最近安装或更新的插件。否则,您也可以完全删除所有已安装的插件:

    1. 转到WordPress仪表盘中的插件菜单 -> 已安装的插件

    2. 单击插件名称旁边的停用按钮。

    3. 完成后,使用以前的方法重置固定链接结构。

    3.替换.htaccess文件

    如果这些选项都没有解决您的固定链接损坏问题,则该问题可能与您的.htaccess文件的配置有关。因此,您应该将当前的.htaccess文件替换为默认文件。

    1. 导航到宝塔面板->文件

    2. 选择您需要管理的网站域名,然后进入WordPress安装目录。

    3. 找到根目录文件夹中的.htaccess文件。

    4. 右键单击并选择重命名。然后,更改文件名(例如.htaccess-error)。

    重命名.htaccess

    5. 接下来,单击页面顶部的新建文件图标。不要忘记将其命名为.htaccess

    6. 将下面的代码粘贴到新的.htaccess文件中。

    # BEGIN WordPress
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index.php$ – [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    </IfModule>
    # END WordPress
    # BEGIN WordPress
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index.php$ – [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    </IfModule>
    # END WordPress
    # BEGIN WordPress
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    </IfModule>
    # END WordPress

    7. 完成后,保存并关闭

    修改htaccess

    或者,您也可以使用FTP客户端来运行此过程。

    如果问题没有解决,请尝试记住在错误发生之前您采取了哪些措施。如果它发生在执行特定更新之后,那么恢复备份可能是让您的站点启动并运行的可靠选项。

    如果你的Web服务器使用的是Nginx,则可以登录你的宝塔面版,点击“网站”菜单进入网站列表,选择你需要配置的网站,点击“设置”,在弹出窗口找到伪静态选项,然后选择网站程序为“WordPress”,最后保存即可。

    宝塔控制面板-静态化设置

    宝塔控制面板-静态化设置

    如果你使用的是LNMP环境,一般情况下你在配置host的时候,若已经选择WordPress作为网站程序,理论上lnmp已经帮你配置好了网站伪静态。

    但如果你在使用/%post_id%.html或者/%post_id%格式作为固定链接时发生链接无法访问,可以尝试手动配置Nginx或者Apache,配置参考如下:

    一般目录为/usr/local/nginx/…,找到网站的conf或者rewrite规则的conf,添加以下代码行:

    location /
    {
    try_files $uri $uri/ /index.php?$args;
    }
    rewrite /wp-admin$ $scheme://$host$uri/ permanent;
    location /
    {
    try_files $uri $uri/ /index.php?$args;
    }
    rewrite /wp-admin$ $scheme://$host$uri/ permanent;
    location /
    {
    try_files $uri $uri/ /index.php?$args;
    }
    rewrite /wp-admin$ $scheme://$host$uri/ permanent;

    小结

    有很多原因导致您在 WordPress 中遇到固定链接损坏的问题。坏消息是,您的网站将无法访问,并会显示“ 404 Page Not Found” 错误。

    幸运的是,您可以使用以下三种简单方法轻松处理此问题:

    • 重置永久链接结构——在 WordPress 仪表板上配置您的内置固定链接设置。
    • 禁用插件——点击几下即可停用已安装的插件。
    • 替换 .htaccess文件或者Nginx配置文件– 从文件管理或使用FTP客户端替换 .htaccess 文件。

    我们希望这个分步教程将帮助您修复WordPress网站上损坏的固定链接。