Apache-2.2

在未啟用 mod_rewrite 的情況下,域不斷被重寫

  • January 23, 2015

所以基本上當我去http://www.example.comOR時http://example.com,URL 會被重寫為ORwww.example.com刪除example.com /刪除http://部分。我不確定為什麼會這樣。

我在 DigitalOcean 上的 DNS 設置如下:

DNS 設置

我的虛擬主機文件如下:

<VirtualHost *:80> ServerAdmin admin@example.com DocumentRoot /var/www.example.com/public_html ServerName www.example.com ServerAlias example.com ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>

這沒什麼大不了的,但我真的很想知道為什麼http://會從 URL 中刪除,並且我也想防止它被刪除。我100%確定mod_rewrite未啟用。Ubuntu Server 14.04 x32如果有幫助的話,在 DigitalOcean 上執行 VPS 。

我認為您正在查看您在瀏覽器地址欄中鍵入的 URL。如果是這樣,則此行為只是一種“裝飾效果”,並且因瀏覽器而異。在 google-chrome 瀏覽器中,協議 ( http://) 被刪除,但在 Firefox 中顯示協議。

但是當向網路伺服器發出請求時,瀏覽器會遵循標準的GET / HTTP/1.1HTTP 標頭,因此應該沒有問題。

如果在協議被切斷的情況下進行任何 URL 重寫,那麼您必須獲得 URL 重定向響應程式碼 301 或 302。要驗證這一點,請嘗試使用curl命令。這裡http://google.com被重定向到http://www.google.co.in/?gfe_rd=cr&ei=9dvBVIbsIqXV8geunYHgDg

$ curl -IL http://google.com
HTTP/1.1 302 Found
Cache-Control: private
Content-Type: text/html; charset=UTF-8
Location: http://www.google.co.in/?gfe_rd=cr&ei=9dvBVIbsIqXV8geunYHgDg
Content-Length: 261
Connection: keep-alive

HTTP/1.1 200 OK
Date: Fri, 23 Jan 2015 05:28:21 GMT
Cache-Control: private, max-age=0
Content-Type: text/html; charset=ISO-8859-1
Accept-Ranges: none
Vary: Accept-Encoding
Connection: keep-alive

引用自:https://serverfault.com/questions/661750