2

私は現在、次の問題を抱えています

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>

htaccessiTheme セキュリティ プラグインを使用しているため、 が機能していることを確認できます。これは期待どおりに機能し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たが、再起動は必要ありませんが、状況は変わりません。誰かが私を正しい方向に向けることができますか?

4

1 に答える 1