2011-09-08 171 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