防止域名上的尾部斜杠

时间:2011-09-08 22:33:06

标签: apache .htaccess url-rewriting domain-name

我希望我的网站显示为 www.mysite.com ,而不是 www.mysite.com /

默认情况下,Apache会在域名后添加尾部斜杠,还是浏览器会附加它?如果我想使用.htaccess来防止这种情况,那么url重写规则是什么?

4 个答案:

答案 0 :(得分:2)

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

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

URL最初用于建模目录,因此需要使用尾部斜杠。我想如果你没有尾随斜杠,一些网络服务器将无法正确找到内容。

答案 1 :(得分:2)

正如Anthony的第一个链接所解释的那样,斜杠是地址的一部分。每个域(而不仅仅是“绝大多数”)都有一个类似www.mysite.com的名称,但这只是一个域名,而不是一个URL。 URL是文件的地址,即协议+域名+路径文件,因此http://www.mysite.com/是由DirectoryIndex添加缺少的文件名,因此是一个URL,但http://www.mysite.com只是没有任何意义,因为在此case文件路径为空。 您的浏览器未显示URL无聊部分这一事实与您网站的配置无关。

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

答案 2 :(得分:2)

如果您要求:

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

答案 3 :(得分:1)

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

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

  • Firefox(Windows,6.0.2)= http://www.adobe.com/
  • Google Chrome(Windows,13.0.782.220 m)= www.adobe.com
  • Opera(Windows 11.51)= www.adobe.com
  • Internet Explorer 9 = http://www.adobe.com/