Ssl
用於 Wordpress 站點的 SSL 解除安裝到 Apache2
我有一個在 Google Compute Engine 實例上執行的 WordPress 站點,並且 SSL 曾經在 Apache 中設置。
由於 SSL 和圖像大小調整給該實例帶來了很大壓力,因此我設置了 Google Compute Engine 負載均衡器,在負載均衡器中設置 SSL 並啟用了 CDN。
在 Apache 端,我禁用了
*:443
配置,只留下了配置*:80
。負載均衡器現在接受埠 443 上的請求並指向埠 80 上的實例。<VirtualHost *:80> ServerAdmin info@mysite.com ServerName mysite.com ServerAlias www.mysite.com # Indexes + Directory Root. DirectoryIndex index.php index.html DocumentRoot /var/www/mysite/htdocs/ # Logfiles ErrorLog /var/www/mysite/logs/error.log CustomLog /var/www/mysite/logs/access.log combined </VirtualHost>
這可行,除了我現在在網站上遇到混合內容錯誤,因為所有資源仍在通過 HTTP 載入。
我現在嘗試啟用 URL 重寫,以查看是否可以通過 https 獲取所有內容:
<VirtualHost *:80> ServerAdmin info@mysite.com ServerName mysite.com ServerAlias www.mysite.com # Indexes + Directory Root. DirectoryIndex index.php index.html DocumentRoot /var/www/mysite/htdocs/ # Logfiles ErrorLog /var/www/mysite/logs/error.log CustomLog /var/www/mysite/logs/access.log combined RewriteEngine on RewriteCond %{HTTPS} off RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [L,QSA,R=permanent] </VirtualHost>
一旦啟用 RewriteEngine 並如上所述重寫 url,我就會獲得無限數量的重定向。
我在 Apache 方面有點生疏,因為在過去的 5 年裡我幾乎只使用 NGINX,關於如何讓 WordPress 在這個設置上正常工作有什麼想法嗎?
事實證明我的設置沒有問題,在 WordPress 中添加以下行
wp-config.php
修復它// force SSL $_SERVER['HTTPS']='on';
或者,如果您想同時執行 http 和 https:
if ($_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https'){ $_SERVER['HTTPS']='on'; }
顯然刪除了 https 重定向:
# RewriteEngine on # RewriteCond %{HTTPS} off # RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [L,QSA,R=permanent]