我已經爲billing.example.com設置了兩個本地虛擬主機(http和自簽名https)並在firefox中用螢火蟲嘗試它們。 Http虛擬主機的唯一目的是將所有請求重定向到https。Apache SSL啓用虛擬主機返回隨機400錯誤請求
幾乎每次我從https請求頁面,一個或兩個文件與相關的資源(圖像,JS,CSS等),有時PHP頁面本身返回400錯誤的請求在螢火蟲窗口,有時一個或兩個文件顯示爲已加載很長時間。 當我點擊螢火蟲中的問題鏈接時,文件會按照它應該加載的方式加載。 此外,差錯請求或未加載的文件幾乎每次我加載頁面時都會發生變化。
任何想法?
服務器: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默認設置。
如果你直接訪問'https:// billing.example.com /',你可能會更好的在serverfault.com上詢問這個問題 – 2010-10-27 17:18:02
它可以工作嗎?我不確定我是否會將整個URI空間完全重寫爲HTTP到HTTPS:它會使通過HTTP進行的所有請求都像通過HTTPS一樣工作,並且人們傾向於關閉通知,告訴他們要去從HTTPS到HTTP,所以他們不會注意到(不安全的)重定向。如果使用HTTP(或至少將所有內容重定向到「root」:https:// billing.example.com /'),最好使它失敗。 – Bruno 2010-10-27 17:23:50
serverfault上的類似問題。沒有解決方案,雖然:(http:// serverfault。com/questions/226040 /間歇性400-bad-request-header-field-is-missing-with-apache-and-ssl – theon 2012-08-21 16:29:35