未启用 mod_rewrite 的域名不断被重写

未启用 mod_rewrite 的域名不断被重写

因此,本质上当我转到http://www.example.comOR时http://example.com,URL 会被重写为www.example.comORexample.com 删除/移除http://部分。我不确定为什么会发生这种情况。

我在 DigitalOcean 上的 DNS 设置如下:

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.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

相关内容