为什么将它们视为具有不同路径大写和尾部斜杠的URL?


8

这些都是完全不同的网址:

http://www.example.com/page
http://www.example.com/pAge
http://www.example.com/page/
http://www.example.com/paGE/

我知道它符合严格的ISO规则,但是为什么呢?那里实际上有多少个网站可以处理pagepage/您可以访问不同的URL?还是实际上使用大写来区分内容?如果他们这样做了,我会告诉他们他们可能做错了。

为什么我们必须浪费时间遵守这些规则?对于Google来说,这是不是很简单,page并且page/页面是同一页面,可能应该视为重复内容?

Answers:


10

我知道它符合严格的ISO规则,但是为什么呢?

网络上的各种服务器背后都有不同的操作系统,对于其中某些服务器,一个名为的目录或文件page与一个名为的目录或文件是不同的Page。结果是,这些位置实际上是两个不同的位置,甚至不一定是同一类型的位置(目录/页)。Web服务器可能被配置为不区分大小写,但是您不能假定这样做。因此,规则必须假设事物确实在乎大小写,如果它们不在乎,那就什么都没有。实际上,依靠大小写差异可能不是一个好主意,但是这种情况确实存在,因此必须加以考虑,有时需要使用诸如mod_speling之类的东西

那里有多少个网站实际上将页面和页面/视为您可以访问的不同URL?

他们不同的。它几乎总是对您隐藏:

  1. 当您进入example.com/foo/Web服务器时,就会知道您要进入目录,因此在其中查找一个文件,该文件与配置为识别为目录索引的文件匹配。因此,最终您最终获得example.com/index.html了例如。
  2. 如果您转到example.com/foo服务器,则实际上会在根目录中查找名为just 的文件foo。如果找不到该目录,那么它将检查是否存在一个名为的目录,/foo并且您可以转到#1。

您似乎在#2中读为“正常”行为的内容实际上是处理可能情况的后备方法。
多少人使用无扩展名的文件名无关紧要。再次:真正的问题;需要考虑。

如果他们这样做了,我会告诉他们他们可能做错了。

那是一种意见。
您可以使用各种不区分大小写的实用论据来支持它,以及如何处理我不一定不同意的无扩展名URL,但实际上,您这样说是错误的。


不搞麻烦的丑陋/令人讨厌的示例:我管理一个站点,但是客户的IT人员管理实际的服务器。他们将其配置为将所有example.com命中重定向到www.example.com,但是无论出于何种原因,重定向都将所有内容强制转换为小写(我没有被告知)。网站编辑正在上传例如。CamelCase.jpg。我没有控制的其他一些代码会在没有 www的情况下链接到这些图像,从而导致各种愚蠢的破坏,直到我们将其捕获为止。
Su


8

没有冒犯的意图,但是区分大小写对于今天的网址至关重要:每天使用数百万次:

一点点地

  1. http://bit.ly/ri2LhQ
  2. http://bit.ly/ri2LHq

两个截然不同的站点-仅由于区分大小写而可能


3
猜猜我是怎么做到的?我从一小部分随机更改的案例中获取了我的一个网址。我花了2次努力想出一个唯一的URL。在您的示例中,相对明显的是每个页面应该在同一页面上……这就是规范或基于服务器的301重定向的内容。您应该负责URL结构的功能,而不是HTTP协议本身。
克里斯·克鲁伊斯

5

这不是Google的政策,它们是基本规则。

从Windows用户的角度来看,很难理解区分大小写的文件名。但是,在unix / linux系统下,pAge和page不是相同的文件,也不是目录,在Web服务器上是相同的。

斜杠是配置问题(或选择)。请记住,在大多数Web服务器上,服务器将在/ page 2 / page /上发出30倍重定向,因此,需要对服务器进行第二次请求。

您可以使Web服务器不区分大小写,并以任何想要遵守自己规则的方式对其进行配置。

但同样,它与Google完全无关

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.