来自 Zach 的有趣深入探讨。您对应该使用哪种方式有意见吗?
1) https://website.com/foo/
2) https://websites.com/foo
第一个选项有“尾部斜杠”。第二个没有。
我一直偏爱这种想法:如果该页面有子页面(也就是说,它是一个目录页面,即使它有自己的独特内容),则使用尾部斜杠。如果它是(内容)的终点,则不使用尾部斜杠。
我说的是,但这个网站本身并没有遵循这个原则。这个网站上的博文类似于 css-tricks.com/blog-post/
,带有 尾部斜杠,如果您省略尾部斜杠,WordPress 会重定向以包含它。这也是 Zach 感兴趣的原因之一。重定向会带来性能损失,因此最好尽可能少地发生这种情况。
性能是一方面,但 SEO 是另一方面。如果您渲染相同的内容,无论是否有尾部斜杠,理论上都会出现重复内容惩罚,这是一个禁忌。(虽然这对我来说很奇怪,我认为 Google 足够聪明,不至于对此太在意。)
资源解析的位置对我来说似乎是最重要的问题。以下是 Zach 的说法
如果您使用的是相对资源 URL,则资产可能在 Vercel、Render 和 Azure 静态 Web 应用中丢失(具体取决于您访问的哪个重复端点)。
<img src="image.avif">
在/resource/
上解析为/resource/image.avif
<img src="image.avif">
在/resource
上解析为/image.avif
这是一个不小的区别,对我来说,这是值得重定向的原因。不能让页面因为这种愚蠢的事情而出现资源损坏。
使问题复杂化的是,站点构建框架可能对此有自己的看法,**并且** 托管提供商也可能对此有自己的看法。正如 Zach 指出的那样,主机之间存在一些分歧,因此需要关注这一点。
我,我尽可能地顺应潮流。只要重定向到位,并且我不必覆盖任何配置,我就没问题。
WordPress 会重定向到您在永久链接设置中设置的版本。如果您不包含尾部斜杠(
/%postname
),WordPress 会从/test/
重定向到/test
,反之亦然,如果您包含尾部斜杠。虽然我认为没有重定向,并且包含
<link rel="canonical" href="/test">
将是最有效的,并且不会造成 SEO 惩罚(来自尊重搜索引擎)。据我了解,这两个地址实际上都不完整。
site.com/page
应该是site.com/page.php
(或 .html),而site.com/page/
应该是site.com/page/index.php
(或 .html)。如果您省略了文件扩展名甚至文档名称,您至少应该正确使用斜杠。
不不不。如果需要,您可以链接到文件,但这不是必需的,扩展名只对您和工具有用,浏览器和互联网并不关心。
我认为从 URI 的角度来看,尾部斜杠应该被视为不良做法。在路径段中添加一个路径分隔符会增加很多歧义。
同意。
/
字符表示“子”某物。这就像面包屑设计,末尾有一个箭头。从技术上讲,没有额外的复杂性,但是,除非是根 URL,否则带尾部斜杠的 URL 和不带尾部斜杠的 URL 完全不同。
您必须**确保**在所有地方使用相同的 URL 方案,因此选择一个并坚持使用它。否则,您的 SEO 可能会受到影响。
如果您的原始 URL 方案没有尾部斜杠,那么在从一个系统迁移到另一个系统时,您应该非常小心。您应该应用 301 重定向以防止不良事件发生。
此外,**请确保您使用具有相同方案的规范标签!**
Google Analytics 会将这两种方案报告为两个不同的 URL。
从语义上讲,带尾部斜杠表示您的 URL 是**一个目录**。对于像 Hugo 这样的框架来说,这是有道理的,因为这些框架会生成许多包含
index.html
文件的文件夹。您可以启用
uglyURLs = true
并将所有“*.html”丑陋的 URL 重定向到正确的路径(不带尾部斜杠或.html
),但这并不是最方便的配置。对于我的一个项目(抱歉,它用荷兰语),我一直都在目录名称后面使用尾部斜杠,除此之外,在每个页面上都有一个指向自身的规范标签
如果有时间,请看一下
https://www.netpolis.nl/autoverzekering/
这是正确的方法吗?
让我困惑的是,我无法重定向(插件)父文件夹中的所有帖子,因为 WordPress 并没有将父文件夹视为文件夹,而是视为文件。我似乎必须为每个帖子进行重定向,不仅如此,还要带有和不带斜杠。