我设置两个本地虚拟主机(HTTP和自签名HTTPS)的billing.example.com与萤火想他们在Firefox。 HTTP虚拟主机唯一的目的是重定向的所有请求到https。

从https,一个或两个文件与相关联的资源(图像,JS,CSS等),有时PHP页面本身的萤火窗口返回400错误的请求,有时一个或两个文件显示几乎每次我请求页作为加载时间长。 当我在Firebug问题链接,文件加载点击,因为它应该。 此外,不良的请求或没有加载的文件几乎每个我时间改变加载页面。

任何想法?

服务器:Ubuntu的10.04,阿帕奇/ 2.2.14与mod_ssl的

虚拟主机:

Listen 80
<VirtualHost *:80>
    ServerName billing.example.com
    UseCanonicalName On
    DocumentRoot /code/site/billing
    ...
    RewriteEngine On
    RewriteRule ^/(.*)$ https://billing.example.com/$1
</VirtualHost>

Listen 443
<VirtualHost *:443>
    ServerName billing.example.com
    UseCanonicalName On
    DocumentRoot /code/site/billing
    ...
    SSLEngine On 
    SSLCertificateFile /code/site/ssl/example.crt
    SSLCertificateKeyFile /code/site/ssl/example.key
</VirtualHost>

其余的是从Ubuntu的apache2的默认设置。

有帮助吗?

解决方案

我是有这个问题与Apache 2.2.9和升级到Apache 2.2.22解决了这个问题,我

我会得到一些页面请求的随机400响应代码。有时图像,有时AJAX请求。偶尔这将是在网页本身,将与该消息一起返回400。

  

错误的请求   您的浏览器发送的请求,该服务器无法理解。   请求头域不存在“:”分隔符。   活

我发现,下面的地毯报告似乎有关。该错误是固定在阿帕奇2.2.15: https://bugzilla.redhat.com/show_bug的CGI?ID = 652335

  

我觉得这个bug是很多随机误差的原因使用HTTPS时:   您的浏览器发送的请求,该服务器无法理解   请求头字段缺失“:”。分离器

于是想我会尝试更新至最新的mod_ssl最新版的Apache - 这似乎工作

其他提示

对于SSL部分,你可能需要打开UseCanonicalName Off对于虚拟主机,你可能使用了不同的域比主服务器,并可能导致您寻找文件的虚拟主机之外。

有关端口80完整性,我会[R,L]添加到重定向。

RewriteEngine  On
RewriteRule    ^/(.*) http://billing.example.com/$1 [L,R]
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top