Apache-2.2

SSL - 如何同時使 http 和 https 工作

  • July 22, 2017

我在專用伺服器上建立了一個 Drupal 6 站點,並通過安裝在其上的“Matrix”控制面板啟用了 SSL。

現在的問題是,該站點僅從 https 載入頁面。大多數圖像也不會載入,我認為這與同一件事有關。理想情況下,我希望 http 和 https 都可以工作,然後我可以為需要安全的頁面整理重定向。

嘗試載入正常 http 頁面時出現的錯誤是:

**Bad Request**

Your browser sent a request that this server could not understand.
Reason: You're speaking plain HTTP to an SSL-enabled server port.
Instead use the HTTPS scheme to access this URL, please.

誰能指出我正確的方向?


編輯:

sites-enabled/domainname.co.uk中,為伺服器的 IP 設置了一個 <VirtualHost>,使用埠 80,如下所示:

&lt;VirtualHost xx.xx.xx.xx:80&gt;
       ServerName xx.co.uk
       ServerAlias www.xx.co.uk
       ServerAdmin webmaster@xx.co.uk
       DocumentRoot /home/default/xx.co.uk/user/htdocs
       ErrorLog /home/default/xx.co.uk/user/logfiles/error_log
       TransferLog /home/default/xx.co.uk/user/logfiles/access_log
       php_admin_value open_basedir /tmp:/home/default/xx.co.uk
       SuexecUserGroup xx matrixdomain
       ScriptAlias /cgi-bin/ /home/default/xx.co.uk/user/htdocs/cgi-bin/
       AddHandler server-parsed .shtml
       AddType text/html .shtml
       &lt;Location /&gt;
               Options +Includes
       &lt;/Location&gt;
# Begin user directives &lt;--
# --&gt; End user directives

我需要為 443 再做一個嗎?

ports.conf我有

名稱虛擬主機 *:80
聽 80

&lt;IfModule mod_ssl.c&gt;
# 還不支持基於 SSL 名稱的虛擬主機,因此不支持
# NameVirtualHost 聲明在這裡
聽著 443
&lt;/IfModule&gt;

似乎您的 Apache httpd 配置錯誤並嘗試在 HTTP 埠上提供 HTTPS(查看 Drupal 站點的虛擬主機配置),或者您正在使用類似**http://example.com:443/**的方案來訪問您的Drupal 安裝,這也不起作用。

HTTP 應該在埠 80 上提供 HTTPS 應該在埠 443 上提供

您的網站應該在:http://www.domain.com https://www.domain.com上執行。

它可能是以下幾件事之一:

我認為這總結了問題可能是什麼,讓我們知道您的解決方案!

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