什么时候应该在URL中使用尾随斜杠?例如,我的URL应该看起来像/about-us/还是像/about-us?
/about-us/
/about-us
我完全意识到seo相关的问题——重复的内容和规范的东西;我正在尝试找出我应该在服务页面正确单独的上下文中使用哪个。
例如,我的同事认为末尾的斜杠意味着它是一个“文件夹”-一个“目录”,所以这不是一个正确的风格。但我认为最后没有斜杠也不太正确,因为它看起来像一个文件夹,但它不是,它也不是一个正常的文件,而是一个没有扩展名的文件名。
是否有正确的方法知道使用哪种?
在我个人看来,后面的斜杠被误用了。
基本上,URL格式来自于相同的UNIX文件和文件夹格式,后来,在DOS系统上,最后,适用于web。
在类unix操作系统上,这本书的典型URL是文件路径,如file:///home/username/RomeoAndJuliet.pdf,用于标识保存在本地硬盘文件中的电子书。
来源:Wikipedia:统一资源标识符
另一个值得阅读的好来源:维基百科:URI方案
根据1994年定义url的RFC 1738,当资源包含对其他资源的引用时,它们可以使用相对链接来定义第二个资源的位置,就好像在说,“除了下面的相对路径之外,在与此资源相同的位置”。它接着说,这样的相对URL依赖于原始URL,原始URL包含一个层次结构,相对链接基于这个结构,而ftp, http, 和文件URL方案是一些可以被认为是分层的例子,层次结构的组件由“/”分隔。
来源:Wikipedia统一资源定位器(URL)
另外:
这是我们经常听到的问题。继续寻找答案吧!从历史上看,通常url末尾带有斜杠来表示目录,而那些末尾没有斜杠来表示目录 表示一个文件: http://example.com/foo/(带有后面的斜杠,通常是一个目录) http://example.com/foo(没有后面的斜杠,通常是一个文件)
http://example.com/foo/(带有后面的斜杠,通常是一个目录)
http://example.com/foo(没有后面的斜杠,通常是一个文件)
来源:谷歌网站管理员中心博客-削减或不削减
最后:
URL末尾的斜杠使地址看起来“漂亮”。
一个没有斜杠结尾,没有扩展名的URL看起来有点“奇怪”。
你永远不会命名你的CSS文件(例如)http://www.sample.com/stylesheet/你会吗?
我总是惊讶于在非目录url (WordPress等)上大量使用尾随斜杠。这真的不应该是一个非此即彼的争论,因为在资源后面加上斜杠在语义上是错误的。web被设计用来提供可寻址的资源,而这些地址(url)被设计用来模拟*nix风格的文件系统层次结构。在这种情况下:
使用这些指导原则,在非目录资源后加上斜杠是错误的。
这不是美学的问题,而是技术上的差异。目录的想法是完全正确的,几乎解释了一切。让我们算算:
你在你的web服务器上有一个固定的目录结构,只有静态文件,如图像,html等。没有服务器端脚本或任何东西。
浏览器请求/index.htm,它存在并被传递给客户端。之后你有很多——比方说——DVD电影审查和一个html页面为他们每个在/dvd/目录。现在有人请求/dvd/adams_apples.htm,它被传递,因为它在那里。
/index.htm
/dvd/
/dvd/adams_apples.htm
在某一天,某人只是请求/dvd/ - 这是一个目录,服务器试图找出要交付的内容。除了访问限制之外,还有两种可能:向用户显示目录内容(我打赌你已经在某处见过了)或显示默认文件(在Apache中是:DirectoryIndex: sets the file that Apache will serve if a directory is requested.)
DirectoryIndex: sets the file that Apache will serve if a directory is requested.
到目前为止一切顺利,这是预期的情况。它已经显示了处理的差异,所以让我们进入:
(顺便说一句,这完全可以理解。)因此,你做了一些完全错误的事情,而不是上传/dvd/the_big_lebowski.htm,而是将该文件作为dvd(没有扩展名)上传到/。
/dvd/the_big_lebowski.htm
dvd
/
有人收藏了你的/dvd/目录列表(当然你不想创建并总是更新那个漂亮的index.htm),并且正在访问你的网站。目录内容已交付-一切正常。
index.htm
有人听说了你的列表,并键入/dvd。现在它完蛋了。服务器没有列出你的DVD目录,而是找到一个同名的文件,并传递你的“绿脚趾”文件。
/dvd
所以,你删除了那个文件,让那个人重新加载页面。您的服务器寻找/dvd文件,但它已经消失了。然后,大多数服务器会注意到有一个具有该名称的目录,并告诉客户端它正在寻找的确实是其他地方。他们的回答很可能是:
Status Code:301 Moved Permanently和Location: http://[...]/dvd/
Status Code:301 Moved Permanently
Location: http://[...]/dvd/
因此,完全忽略你对目录或文件的看法,服务器只能处理这样的东西,并且-除非另有说明-为你决定“斜杠与否”的含义。
最后,在收到这个响应后,客户端加载/dvd/,一切正常。
好吗?不。
你有一些动态页面,其中所有内容都传递给/index.php并得到处理。到目前为止,一切都很顺利,但整个事情开始变得缓慢,你开始调查。
/index.php
很快,你会注意到/dvd/list正在做完全相同的事情:重定向到/dvd/list/,然后在内部转换为index.php?controller=dvd&action=list。还有一个额外的要求——但更糟糕!customer/login重定向到customer/login/,后者反过来重定向到customer/login/的HTTPS URL。你最终会有吨不必要的HTTP重定向(=额外的请求),使用户体验变慢。
/dvd/list
/dvd/list/
index.php?controller=dvd&action=list
customer/login
customer/login/
很可能你在这里也有一个默认的目录索引:index.php?controller=dvd没有action,只是在内部加载index.php?controller=dvd&action=list。
index.php?controller=dvd
action
如果以/结尾,则永远不能是一个文件。没有服务器猜测。
斜杠和无斜杠是完全不同的含义。“斜杠与无斜杠”之间存在技术/资源差异,您应该意识到这一点并相应地使用它。只是因为服务器很可能加载/dvd/index.htm -或加载正确的脚本内容-当你说/dvd:它会这样做,但并不是因为你提出了正确的请求。也就是/dvd/。
/dvd/index.htm
省略斜杠,即使你确实mean,斜杠版本会给你额外的HTTP请求惩罚。这总是不好的(想想移动延迟),比“漂亮的URL”更有分量——尤其是因为爬虫并不像seo相信的那样愚蠢,也不像seo希望你相信的那样愚蠢;)
这里的其他答案似乎倾向于省略后面的斜杠。在一种情况下,后面的斜杠将有助于搜索引擎优化(SEO)。在这种情况下,您的文档的文件扩展名似乎不是.html。这成为网站评级的一个问题。他们可能会在这两个网址中选择:
.html
http://mysite.example.com/rated.example.com
http://mysite.example.com/rated.example.com/
在这种情况下,我会选择加上后面的斜杠。这是因为.com扩展名是Windows可执行命令文件的扩展名。搜索引擎和病毒检查程序通常不喜欢看起来可能包含通过此类机制分发的恶意软件的url。后面的斜杠似乎减轻了任何担忧,允许页面在搜索引擎中排名,并通过病毒检查。
.com
如果你的url在文件部分没有.,那么为了简单起见,我建议省略后面的斜杠。
.
这不是一个偏好的问题。/base和/base/有不同的语义。在许多情况下,这种差异并不重要。但当存在相对url时,这很重要。
/base
/base/
child
/base/child
/child
当你让你的URL /about-us/(带末尾斜杠)时,很容易从一个文件index.html开始,然后扩展它并添加更多的文件(例如our-CEO-john-doe.jpg),甚至根据需要在它下面构建一个层次结构(例如/about-us/company/, /about-us/products/等),无需更改发布的URL。这给了你很大的灵活性。
index.html
our-CEO-john-doe.jpg
/about-us/company/
/about-us/products/
从SEO的角度来看,选择是否在URL的末尾包含一个斜杠是无关紧要的。如今,这两种情况在网络上都很常见。网站不会受到任何惩罚,也不会影响你网站的搜索引擎排名或其他SEO考虑因素。
只需选择一个你喜欢的URL命名约定,并在每个网页的<head>部分包含一个规范的元标记。
<head>
当搜索引擎遇到带有或不带有尾斜杠的网页时,可能会将单个网页视为两个独立的重复url,即example.com/about-us/和example.com/about-us。
example.com/about-us/
example.com/about-us
最好的做法是在每个页面上包含一个规范的元标记,因为您无法控制其他站点如何链接到您的url。
规范标签看起来像这样:<link rel="canonical" href="https://example.com/about-us" />。使用规范的元标记可以确保搜索引擎只计算你的每个url一次,而不管其他网站链接到你的网站时是否包含一个尾随斜杠。
<link rel="canonical" href="https://example.com/about-us" />
对于根域或子域,后面的斜杠无关紧要。谷歌认为这两个是等价的。
末尾没有斜杠的URL通常意味着该URL是一个文件。
阅读更多 .
谷歌推荐