这实际上不是美学问题,而是技术差异。考虑它的目录是完全正确的,几乎可以解释一切。让我们解决它:
您现在又回到了石器时代,或者只提供静态页面
您的网络服务器上有一个固定的目录结构,只有图像、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.)
到目前为止一切顺利,这是预期的情况。它已经显示了处理上的差异,所以让我们开始吧:
凌晨 5 点 34 分,您上传文件时出错
(顺便说一句,这是完全可以理解的。)所以,你做错了事,而不是上传/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/,而 customer/login/ 又重定向到 customer/login/ 的 HTTPS URL。您最终会有 吨 不必要的 HTTP 重定向(= 额外的请求),这会使用户体验变慢。
您很可能在这里也有一个默认目录索引:index.php?controller=dvd 没有action 只是在内部加载index.php?controller=dvd&action=list。
总结:
如果它以 / 结尾,则它可能永远是一个文件。没有服务器猜测。
斜线或无斜线是完全不同的含义。“斜线或无斜线”之间存在技术/资源差异,您应该了解并相应地使用它。仅仅因为服务器最有可能加载/dvd/index.htm - 或加载正确的脚本内容 - 当你说/dvd:它做到了,但不是因为你提出了正确的请求。应该是/dvd/。
即使您确实是指斜线版本也省略斜线会给您额外的 HTTP 请求惩罚。这总是很糟糕(想想移动延迟)和比“漂亮的 URL”更重要——尤其是因为爬虫并不像 SEO 相信或希望你相信的那样愚蠢;)