Https(許可されている唯一のプロトコル)を介してサイトにアクセスします。コンテンツは取得しますが、CSSや画像などは取得しません。
Drupalは、httpへのリンクを含むhttpsリクエストに応答してページを作成していますこれらのリソースですが、httpsを使用する必要があります。
サイトを開発サーバーにコピーしました。サイトはロードされ、基本的には正常に機能します-ログインできます。たとえば、すべてのリンクdrupalが生成するものはhttpです。コピー元のサイトはhttpsでも実行されます。サイトはhttpには存在しません(Forbiddenエラーが発生するだけです)。drush cc all
を使用しました。
Apacheが機能している-私はサイトにアクセスできます。 .htaccess
は機能しています(たとえば、クリーンなURLが機能します)。
サーバーに他のvhostもあるため、SNIを使用してサイトにアクセスしていますが、最新のFirefoxを使用してのみサイトにアクセスしています(それは開発サイトであり、私が唯一の開発者であるため、他の誰も使用しません)。 。
私はこれを何十回もやったことがあり、かなり困惑しています! Drupalリクエストがhttps経由で来たことに気付かないのはなぜですか?
.htaccess
には次のように言うことがわかりました:
/* Base URL (optional). If Drupal is generating incorrect URLs on your site, which could be in HTML headers (links to CSS and JS files) or visible links on pages (such as in menus), uncomment the Base URL statement below (remove the leading hash sign) and fill in the absolute URL to your Drupal installation.
案の定、$base_url = 'https://example.com';
を入れて修正しました。
しかし、なぜこれが必要なのですか?
私は同様の問題があり、$base_url = ''
。静的コンテンツの問題を修正します。 Drupalは、絶対ではなく相対URLを生成します。これはとにかく正しいことです。しかし、これはupdate.php
何らかの理由で(7.38を実行)。