什么时候应该在URL中使用尾随斜杠?例如,我的URL应该看起来像/about-us/还是像/about-us?

我完全意识到seo相关的问题——重复的内容和规范的东西;我正在试图找出我应该在正确地单独提供页面的上下文中使用哪一个。

例如,我的同事认为末尾的斜杠意味着它是一个“文件夹”-一个“目录”,所以这不是一个正确的风格。但我认为最后没有斜杠也不太正确,因为它看起来像一个文件夹,但它不是,它也不是一个正常的文件,而是一个没有扩展名的文件名。

是否有正确的方法知道使用哪种?


当前回答

对于根域或子域,后面的斜杠无关紧要。谷歌认为这两个是等价的。

但后面的斜杠对其他所有内容都很重要,因为谷歌将两个版本(一个带有后面的斜杠,一个没有)视为不同的url。 通常,URL末尾的斜杠(/)意味着URL是一个文件夹或目录。

末尾没有斜杠的URL通常意味着该URL是一个文件。

阅读更多

谷歌的建议

其他回答

这不是美学的问题,而是技术上的差异。目录的想法是完全正确的,几乎解释了一切。让我们算算:

你现在回到了石器时代,或者只提供静态页面

你在你的web服务器上有一个固定的目录结构,只有静态文件,如图像,html等等-没有服务器端脚本或任何东西。

浏览器请求/index.htm,它存在并被交付给客户端。之后,你有很多——比方说——DVD电影的评论和一个html页面的每一个在/ DVD /目录。现在有人请求/dvd/adams_apple .htm,它会被传递,因为它就在那里。

在某一天,有人只是请求/dvd/ -这是一个目录,服务器试图弄清楚要交付什么。除了访问限制等等,还有两种可能:向用户显示目录内容(我打赌您已经在某处见过)或显示默认文件(在Apache中是:DirectoryIndex:设置当请求目录时Apache将提供的文件)。

到目前为止一切顺利,这是预期的情况。它已经显示了处理的差异,所以让我们进入它:

早上5:34,你上传文件时出错了

(顺便说一句,这完全可以理解。)因此,您做了一些完全错误的事情,而不是上传/dvd/the_big_lebowski.htm,而是将该文件作为dvd(没有扩展名)上传到/。

有人收藏了你的/dvd/目录列表(当然你不想创建并总是更新那个漂亮的index.htm),并且正在访问你的网站。目录内容已交付-一切正常。

有人听说了你的清单,正在输入/dvd。现在它完蛋了。服务器没有列出你的DVD目录,而是找到一个同名的文件,并传递你的“绿脚趾”文件。

所以,你删除了那个文件,让那个人重新加载页面。您的服务器正在寻找/dvd文件,但是它已经消失了。然后,大多数服务器会注意到有一个具有该名称的目录,并告诉客户端它正在寻找的确实是其他地方。他们的回答很可能是:

状态码:301永久移动位置:http://[…]/dvd/

因此,完全忽略你对目录或文件的想法,服务器只能处理这样的东西,并且-除非另有指示-为你决定“斜杠与否”的含义。

最后,在收到这个响应之后,客户端加载/dvd/,一切正常。

好吗?不。

"还好"对你来说不够好

您有一个动态页面,其中所有内容都传递到/index.php并得到处理。到目前为止,一切都很顺利,但整个事情开始变得缓慢,你开始调查。

很快,你会注意到/dvd/list做的是完全相同的:重定向到/dvd/list/,然后在内部转换为index.php?controller=dvd&action=list。还有一个额外的要求——但更糟糕!customer/login重定向到customer/login/,而customer/login/重定向到customer/login/的HTTPS URL。你最终会有大量不必要的HTTP重定向(=额外的请求),这会让用户体验变慢。

这里很可能还有一个默认的目录索引:index.php?没有动作的Controller =dvd只是在内部加载index.php? Controller =dvd&action=list。

简介:

If it ends with / it can never be a file. No server guessing. Slash or no slash are entirely different meanings. There is a technical/resource difference between "slash or no slash", and you should be aware of it and use it accordingly. Just because the server most likely loads /dvd/index.htm - or loads the correct script stuff - when you say /dvd: It does it, but not because you made the right request. Which would have been /dvd/. Omitting the slash even if you indeed mean the slashed version gives you an additional HTTP request penalty. Which is always bad (think of mobile latency) and has more weight than a "pretty URL" - especially since crawlers are not as dumb as SEOs believe or want you to believe ;)

在我个人看来,后面的斜杠被误用了。

基本上,URL格式来自于相同的UNIX文件和文件夹格式,后来,在DOS系统上,最后,适用于web。

在类unix操作系统上,这本书的典型URL是文件路径,如file:///home/username/RomeoAndJuliet.pdf,用于标识保存在本地硬盘文件中的电子书。

来源:维基百科:统一资源标识符

另一个很好的阅读来源:维基百科:URI Scheme

According to RFC 1738, which defined URLs in 1994, when resources contain references to other resources, they can use relative links to define the location of the second resource as if to say, "in the same place as this one except with the following relative path". It went on to say that such relative URLs are dependent on the original URL containing a hierarchical structure against which the relative link is based, and that the ftp, http, and file URL schemes are examples of some that can be considered hierarchical, with the components of the hierarchy being separated by "/".

来源:维基百科统一资源定位器(URL)

另外:

这是我们经常听到的问题。继续寻找答案吧!从历史上看,通常url末尾带有斜杠来表示目录,而那些末尾没有斜杠来表示目录 表示一个文件: http://example.com/foo/(后面带斜杠,通常是一个目录) http://example.com/foo(没有后面的斜杠,通常是一个文件)

来源:谷歌网站管理员中心博客-削减或不削减

最后:

URL末尾的斜杠使地址看起来“漂亮”。 一个没有斜杠结尾,没有扩展名的URL看起来有点“奇怪”。 你永远不会把你的CSS文件命名为http://www.sample.com/stylesheet/,你会吗?

但我是一个不考虑环境的网络最佳实践的支持者。 它可能是不稳定的和不清楚的,就像你说的URL没有下一个。

谁说文件名需要扩展名??找个时间看看*nix机器… 我同意你朋友的说法,没有拖尾斜线。

当你创建你的URL /about-us/(带末尾斜杠)时,很容易从单个文件index.html开始,然后根据需要扩展它并添加更多文件(例如our- ceo -john-do .jpg),甚至在它下面构建一个层次结构(例如/about-us/company/, /about-us/products/等),而不需要更改发布的URL。这给了你很大的灵活性。

对于根域或子域,后面的斜杠无关紧要。谷歌认为这两个是等价的。

但后面的斜杠对其他所有内容都很重要,因为谷歌将两个版本(一个带有后面的斜杠,一个没有)视为不同的url。 通常,URL末尾的斜杠(/)意味着URL是一个文件夹或目录。

末尾没有斜杠的URL通常意味着该URL是一个文件。

阅读更多

谷歌的建议