URL中何时应使用斜杠?例如-我的网址应为/about-us/
还是类似/about-us
?
我完全意识到与SEO相关的问题-重复的内容和规范的事情;我正在尝试确定在投放页面的上下文中应该使用哪一个单独正确。
例如,我的同事认为末尾的斜线表示它是“文件夹”-“目录”,因此这不是正确的样式。但是我认为最后没有斜杠-也不太正确,因为它看起来几乎像一个文件夹,但它也不是普通文件,而是没有扩展名的文件名。
有知道使用哪个的正确方法吗?
URL中何时应使用斜杠?例如-我的网址应为/about-us/
还是类似/about-us
?
我完全意识到与SEO相关的问题-重复的内容和规范的事情;我正在尝试确定在投放页面的上下文中应该使用哪一个单独正确。
例如,我的同事认为末尾的斜线表示它是“文件夹”-“目录”,因此这不是正确的样式。但是我认为最后没有斜杠-也不太正确,因为它看起来几乎像一个文件夹,但它也不是普通文件,而是没有扩展名的文件名。
有知道使用哪个的正确方法吗?
Answers:
在我个人看来,尾部的斜杠被滥用了。
基本上,URL格式来自文件和文件夹的UNIX相同格式,此后在DOS系统上,最后适用于Web。
在类似Unix的操作系统上,这本书的典型URL是文件路径,例如file:///home/username/RomeoAndJuliet.pdf,用于标识保存在本地硬盘上文件中的电子书。
资料来源:维基百科:统一资源标识符
另一个值得阅读的好资料:Wikipedia:URI方案
根据RFC 1738(在1994年定义了URL),当资源包含对其他资源的引用时,它们可以使用相对链接来定义第二个资源的位置,就好像说,“与该资源位于同一位置,但以下相对位置路径”。它接着说,这种相对URL取决于包含针对其相对链接是基于分层结构的原始URL,并且该FTP,HTTP,和文件的URL方案是一些可以考虑分级的例子,与层次结构中的各个组件用“ /”分隔。
也:
这是我们经常听到的问题。继续回答!从历史上看,使用带斜杠的URL表示目录,而不带斜杠的URL表示文件是常见的:
http://example.com/foo/(带斜杠,通常是目录)
http://example.com/foo(不带斜杠,通常是一个文件)
来源:Google WebMaster Central Blog-斜线或不斜线
最后:
URL末尾的斜杠使地址看起来“漂亮”。
末尾没有斜杠且没有扩展名的URL看起来有些“怪异”。
您将永远不会为CSS文件命名(例如)http://www.sample.com/stylesheet/?
但是无论环境如何,我都是Web最佳实践的拥护者。正如您所说的不带扩展名的URL一样,它可能是很模糊和不清楚的。
index.html
(或类似命名的文件)时,目录访问,所以/foo/
是/foo/index.html
没有额外的混乱。另外,过去,浏览器会附加/
到域名之后,但是自那时以来,它们(Firefox,Chrome,Opera)已更改为/
在访问主页时省略。
这不是优先问题。/base
并/base/
具有不同的语义。在许多情况下,差异并不重要。但是,当存在相对URL时,这一点很重要。
child
相对/base/
的/base/child
。child
相对于/base
(可能令人惊讶)/child
。Uri.MakeRelativeUri
。结果正好反映了您所说的话。我通过在结尾加上斜杠来解决此问题Uri
。
我总是对非目录URL(包括WordPress等)上的尾部斜杠的广泛使用感到惊讶。这实际上不应该是一个“或非”的辩论,因为在资源后面加上斜杠在语义上是错误的。Web旨在提供可寻址资源,而这些地址-URL-旨在模拟* nix样式的文件系统层次结构。在这种情况下:
使用这些准则,在非目录资源后加斜杠是错误的。
directory
(否则,image.png
in http://hostname/directory
指向http://hostname/image.png
)。我只是说,从用户的角度来看,文件和目录之间的区别可能不是很重要。
这实际上不是美学的问题,而是技术上的区别。目录的思考是完全正确的,几乎可以解释所有内容。让我们来解决:
您的Web服务器上具有固定的目录结构,并且只有静态文件(如图像,html等),而没有服务器端脚本或任何其他内容。
浏览器请求/index.htm
,该浏览器存在并交付给客户端。后来您有很多-假设-审查了DVD电影,并在/dvd/
目录中有每个电影的html页面。现在有人提出要求/dvd/adams_apples.htm
,因为它在那里,所以交付了它。
某天某人只是请求/dvd/
- 这是一个目录,服务器正在尝试确定要交付的内容。除了访问限制等方面有两种可能性:显示用户的目录中的内容(我敢打赌,你已经看到这个地方),或显示默认的文件(在Apache中,它是:DirectoryIndex: sets the file that Apache will serve if a directory is requested.
)
到目前为止很好,这是预期的情况。它已经显示出处理上的差异,所以让我们开始吧:
(顺便说一下,这是完全可以理解的。)因此,您做的完全错误,而不是将/dvd/the_big_lebowski.htm
文件上传为dvd
(无扩展名)为/
。
有人为您的/dvd/
目录列表添加了书签(当然,您不想创建它,并且总是要更新它index.htm
),并且正在访问您的网站。目录内容已交付-一切正常。
有人听说了您的清单,正在输入/dvd
。现在,它被拧了。服务器未找到列出的DVD目录,而是找到了具有该名称的文件,并正在交付Big Lebowski文件。
因此,您删除该文件,并告诉该家伙重新加载页面。您的服务器正在寻找/dvd
文件,但是文件不见了。然后,大多数服务器会注意到存在一个带有该名称的目录,并告诉客户端它正在寻找的内容确实在其他地方。响应很可能是:
Status Code:301 Moved Permanently
与 Location: http://[...]/dvd/
所以,完全无视你对目录或文件的看法,服务器只能处理此类内容,并且-除非另行通知,否则服务器会为您确定“是否斜杠”的含义。
最终,在收到此响应后,客户端将加载/dvd/
,一切正常。
可以吗 没有。
您有一个动态页面,所有内容都传递给该页面/index.php
并进行处理。到目前为止,一切工作都还不错,但是整个过程开始变得缓慢,您需要进行调查。
很快,您会注意到这样/dvd/list
做的完全相同:重定向到/dvd/list/
,然后在内部将其转换为index.php?controller=dvd&action=list
。另一项要求-但更糟!customer/login
重定向到customer/login/
,然后重定向到的HTTPS URL customer/login/
。您最终将拥有大量不必要的HTTP重定向(=其他请求),这会使用户体验变慢。
您很有可能在这里也有一个默认目录索引:内部index.php?controller=dvd
没有action
简单地加载index.php?controller=dvd&action=list
。
如果结尾是文件/
,则永远不会。没有服务器猜测。
斜杠或不斜杠是完全不同的含义。“斜杠或无斜杠”之间存在技术/资源上的区别,您应该意识到并适当地使用它。仅仅因为服务器/dvd/index.htm
在您说/dvd
:时加载了(或加载了正确的脚本内容),但这并不是因为您发出了正确的请求。那本来是/dvd/
。
省略斜线,即使你的确是说的削减版本,给你一个额外的HTTP请求处罚。这总是不好的(考虑到移动延迟),并且比“漂亮的URL”更重要-尤其是因为搜寻器不像SEO相信或希望您相信的那样愚蠢;)
dvd
)的常规文件?
当你让你的网址/about-us/
(用斜线),它很容易启动一个单独的文件index.html
,然后在以后进行扩展,并添加更多的文件(例如our-CEO-john-doe.jpg
),甚至建立在它之下(例如一个层次/about-us/company/
,/about-us/products/
根据需要,等等),而不更改发布的URL。这为您提供了极大的灵活性。
/about-us
或者/about-us/
在两种情况下都需要扩展发布的URL(如果我扩展目录)。/about-us/new-file.html
在这两种情况下,新文件都是!我在这里想念什么?
/about-us
and /about-us/company
?在提供文件方面,Apache和IIS都可以很好地处理此问题,因此我不同意。
/about-us
您要从中链接到/about-us/company
,则必须使用href="https://stackoverflow.com/about-us/company"
或href="./company"
(尽管不确定那个)。/about-us/
不过,如果您在使用,则很简单:href="company"
。
这里的其他答案似乎都倾向于省略斜杠。在一种情况下,斜杠将有助于搜索引擎优化(SEO)。在这种情况下,您的文档的文件扩展名似乎不是.html
。这是对网站进行评级的网站的问题。他们可以在以下两个网址之间进行选择:
http://mysite.example.com/rated.example.com
http://mysite.example.com/rated.example.com/
在这种情况下,我会选择带有斜杠的那个。这是因为该.com
扩展名是Windows可执行命令文件的扩展名。搜索引擎和病毒检查器通常不喜欢URL,URL似乎包含通过这种机制分发的恶意软件。尾部的斜线似乎可以减轻任何麻烦,使页面可以在搜索引擎中排名并被病毒检查程序获取。
如果您的URL .
在文件部分中没有,那么为简单起见,我建议省略斜杠。
从SEO角度来看,选择是否在URL末尾添加斜杠是无关紧要的。如今,在网上经常看到这两个示例。网站不会受到任何惩罚,这种选择也不会影响您网站的搜索引擎排名或其他SEO注意事项。
只需选择您喜欢的URL命名约定,然后在<head>
每个网页的部分中添加一个规范的meta标签即可。
搜索引擎在遇到一个带有和不带有尾部斜杠(即example.com/about-us/
和)的网页时,可能会将单个网页视为两个单独的重复URL example.com/about-us
。
最佳做法是在每个页面上都包含一个规范的元标记,因为您无法控制其他网站如何链接到您的URL。
规范标签如下所示:<link rel="canonical" href="https://example.com/about-us" />
。使用规范的元标记可确保搜索引擎仅对您的每个URL计数一次,无论其他网站链接到您的网站时是否在其后面加上斜杠。