因此,本质上当我转到http://www.example.com
OR时http://example.com
,URL 会被重写为www.example.com
ORexample.com
删除/移除这http://
部分。我不确定为什么会发生这种情况。
我在 DigitalOcean 上的 DNS 设置如下:
我的虚拟主机文件如下:
<VirtualHost *:80> ServerAdmin [email protected]
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。
答案1
我认为你正在查看在浏览器地址栏中输入的 URL。如果是这样,那么这种行为只是一种“美容效果“并且它因浏览器而异。在 google-chrome 浏览器中,协议 ( http://
) 被删除,但在 firefox 中显示该协议。
但是当向 Web 服务器发出请求时,浏览器会遵循标准GET / HTTP/1.1
HTTP 标头,因此应该不会出现问题。
如果有任何 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