2011-09-08 67 views
4

我希望我的网站显示为www.mysite.com,不www.mysite.com/防止尾随斜线

不阿帕奇默认域名后加上结尾斜杠,还是浏览器追加它?如果我想用.htaccess来防止这种情况,URL重写规则是什么?

+0

这是浏览器如何显示它 - 与Web服务器无关。 – LazyOne

+0

@ LazyOne-那么大多数网站怎么没有结尾的斜线 - 使用相同的浏览器? – Yarin

+0

域名后面的斜线(如你的例子)......或者文件夹名称后? - 这是一个巨大的差异。 – LazyOne

回答

2

http://www.searchenginejournal.com/linking-issues-why-a-trailing-slash-in-the-url-does-matter/13021/

http://www.alistapart.com/articles/slashforward/

网址最初用来建模目录,因此被要求的结尾的斜线。我想如果你没有斜线,一些网络服务器将无法正确地找到内容。

+0

@ Anthony-对不起,但这没有意义,也没有回答这个问题。绝大多数域不包括尾部斜线(包括StackOverflow.com)。我的问题是为什么它被自动添加,以及如何防止它。 – Yarin

1

浏览器在请求URL时会自动添加这样的斜线。 它如何在地址栏中显示这是一个不同的故事。

例如:www.adobe.com - 在不同的浏览器中键入一下,看看他们将如何显示它:

  • 火狐(Windows中,6.0.2)= http://www.adobe.com/
  • 谷歌浏览器(Windows中, 13.0.782.220米)= www.adobe.com
  • 歌剧(视窗11.51)= www.adobe.com
  • 互联网浏览器9 = http://www.adobe.com/
2

正如Anthony的第一个链接所说,斜线是地址的一部分。每个域名(不仅仅是“绝大多数”)都有一个类似于www.mysite.com的名称,但这只是一个域名,而不是一个URL。 URL是文件的地址,即协议+域名+路径文件,因此http://www.mysite.com/通过DirectoryIndex添加了缺少的文件名,因此是一个URL,但http://www.mysite.com并不意味着什么,因为在这种情况下文件路径将为空。 事实上,您的浏览器不显示您的URL的无聊部分与您的网站配置无关。

如果真的相同的浏览器在不同的网站上有不同的表现,我很想知道您使用的浏览器和网站。

2

如果您要求:

http://myhost.com

请求需要像这样在HTTP:

GET/HTTP/1.0
主持人:myhost.com

由于历史的原因,一些浏览器确实附加了斜杠,因为否则它会翻译为

GET <没有> HTTP/1.0
主机:myhost.com

这将是一个非法请求。

需要注意的是:

http://myhost.com/page

是合法的,因为它翻译成:

GET /页HTTP/1.0
主持人:myhost.com