私は現在、次の問題を抱えています
Mixed Content: The page at 'https://www.example.com/' was loaded over HTTPS, but requested an insecure stylesheet
これは、Centos サーバーにhttpd
インストールされた Wordpress Web サイトです。
`http.conf に次の仮想ホストを設定しています。
NameVirtualHost *:80
NameVirtualHost *:443
<VirtualHost *:443>
DocumentRoot /var/www/html/example
ServerName www.example.com
ServerAlias example.com
SSLEngine on
SSLCACertificateFile /etc/httpd/conf/ssl.crt/intermediate.crt
SSLCertificateFile /etc/httpd/conf/ssl.crt/server.crt
SSLCertificateKeyFile /etc/httpd/conf/ssl.key/server.key
</VirtualHost>
<VirtualHost *:80>
ServerName www.example.com
ServerAlias example.com
Redirect / https://www.example.com/
</VirtualHost>
私のhttpd.conf
私はすべてに変更AllowOverride
したので、次のようになります。
<Directory "/var/www/html">
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
htaccess
iTheme セキュリティ プラグインを使用しているため、 が機能していることを確認できます。これは期待どおりに機能しhtacces
ています。
ダッシュボードの両方の Wordpress URL を のhttps
代わりに使用するように変更しましたhttp
。
これがすべて完了すると、HTTP 経由でサイトにアクセスし、サイトの HTTPS バージョンにリダイレクトされ、サイトを表示できるようになりました。ただし、コンソールでは、混合コンテンツに関するエラーが表示され、南京錠の盾が目的の緑ではなく、黄色または赤の十字として表示されます。
問題となるファイルがいくつかあります。たとえば、URL を手動で変更して、 ではなく使用できることがわかっていhttps
ますhttp
。私が理解しているように、URL を以下に変更することができます。これにより、現在使用されているプロトコルへのリンクが調整されます。
<img src="//www.example.com/image.jpg" />
また、リソースが利用できない場合https
は、次のことを簡単に実行できることも確認しました。
https://example.com/imageserver?url=http://otherdomain.com/someimage.jpg&hash=abcdeafad
ただし、これらすべてを一度に修正する方法を見つけようとしていますhtaccess
(以前に行ったことがあると確信していますが、スニペットが機能していません)。
すべてを強制的に上書きするために使用した主なスニペットは 2 つありますhttps
。最初のスニペットは次のとおりです。
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
#These Lines to force HTTPS
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NC,R=301,L]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
2 つ目は Dave Walsh によるものです。
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://example.com/$1 [R,L]
ただし、どちらも私の問題を解決していないようです。予防措置として、httpd
変更のたびにサービスを再起動しましhtaccess
たが、再起動は必要ありませんが、状況は変わりません。誰かが私を正しい方向に向けることができますか?