我希望我的网站显示为www.mysite.com,而不是www.mysite.com/
Apache 是否默认在域名后添加斜杠,或者浏览器是否附加它?如果我想使用 .htaccess 来防止这种情况发生,那么 url 重写规则是什么?
我希望我的网站显示为www.mysite.com,而不是www.mysite.com/
Apache 是否默认在域名后添加斜杠,或者浏览器是否附加它?如果我想使用 .htaccess 来防止这种情况发生,那么 url 重写规则是什么?
如果您要求:
http://myhost.com
请求在 HTTP 中需要如下所示:
GET / HTTP/1.0
主机:myhost.com
由于历史原因,一些浏览器确实附加了斜杠,否则它会转换为
GET <nothing> HTTP/1.0
主机:myhost.com
这将是一个非法的请求。
注意:
http://myhost.com/page
是合法的,因为它转化为:
GET /page HTTP/1.0
主机:myhost.com
http://www.searchenginejournal.com/linking-issues-why-a-trailing-slash-in-the-url-does-matter/13021/
http://www.alistapart.com/articles/slashforward/
URL 最初用于对目录进行建模,因此需要尾部斜杠。我认为如果您没有尾部斜杠,一些网络服务器将无法正确找到内容。
正如 Anthony 的第一个链接所解释的,斜杠是地址的一部分。每个域(不仅仅是“绝大多数”)都有一个类似于 www.mysite.com 的名称,但这只是一个域名,而不是 URL。URL是一个文件的地址,即协议+域名+路径文件,所以http://www.mysite.com/被DirectoryIndex添加了缺少的文件名,因此是一个URL,但是http://www.mysite.com只是没有任何意义,因为在这种情况下文件路径将为空。您的浏览器不显示您的 URL 的无聊部分这一事实与您网站的配置无关。
如果真的相同的浏览器在不同的网站上表现不同,我很想知道您使用的是什么浏览器和哪些网站。
浏览器在请求 URL 时会自动添加这样的斜线。它如何在地址栏中显示是另一回事。
例如: www.adobe.com
-- 在不同的浏览器中输入它,看看它们将如何显示它:
http://www.adobe.com/
www.adobe.com
www.adobe.com
http://www.adobe.com/