WagtailのSitemapのhttpをhttpsにする

Sitemapのhttpをhttpsに変更する方法。

Wagtailではサイトマップ(xml)を動的に自動生成してくれます。すなわち、新しいページを追加した瞬間からサイトマップに反映されます。すごい便利です。

サイトマップ生成の設定は数行のコードを追加するだけで、公式リファレンスに詳しくありますのでさておいて、生成されたサイトマップをのぞいてみると、次の画像のようになっていました。

wagtail_sitemap_https2.png

プロトコルがhttpになっています。当サイトはアドレスを見ていただくとわかりますが、httpsです。おかしいですね。

一応この状態で「Googleクローラー来て来て~」をやってみましたが、ログを見るとhttpにアクセスして301でhttpsの方に飛ばされていて問題ありです。

正しくhttpsにするにはWagtailの設定を変更する必要があります。

方法

1.Wagtailの管理サイトへログインします。

2.メニューからSettings→Sitesで対象となるWEBサイトを選択します。

3.Portが【80】になっているはずなので【443】にしましょう。
ポート番号は 80=httpで 443=https がデフォルトなのでこれでプロトコルを決定しているようです。

wagtail_sitemap_https3.png

4.Saveボタンで変更を確定します。

サイトマップのURLへアクセスしてhttpsに変わっているか確認しましょう。キャッシュがある場合はリロードしてみてくださいね。

wagtail_sitemap_https1.png

httpsに変わりました。

おわりに

Wagtail(Django)のソースコードを見ていくと、リクエストのSchemerによって自動でSitemapのプロトコル部分を変える処理をしているようです。

ブラウザーでリクエストヘッダーを見るとちゃんとhttpsになっているのですが、デバッグで止めてリクエストを見るとWSGIからhttpでリクエストがきていました。このためhttpになってしまう模様。

どこかの段階で設定値からプロトコルを決めるロジックが走っていると思われますが、それ以上コードを潜っていく気力もなく…管理画面で変更できたので良しとします。まだ勉強不足ですね。

related pages
WagtailでWEBページを追加する
ページの追加方法 Wagtail布教活動その4

WagtailでWEBページを追加するのは簡単です。ここからがCMSの本領発揮です。前回作成したホームページをベースに内容が異なるページを追加していきます。

Read More ...
WagtailでWEBページを表示する 前編
テンプレートでWEBページ Wagtail布教活動その2

HTMLファイルはテキストデータなので、<html>から始まり</html>で終わるまでの文字列を作成するわけですが、これを純粋にPythonのソースコードだけでやるとものすごい大変です。Wagtailにはそんなことをする必要がないようにしくみが備わっています。

Read More ...
Wagtailのはじめかた
CMSもPythonにしよう! Wagtail布教活動その1

CMSはPHPの天下となって久しいですが、Python使いなら、全部Pythonで済ませたいですよね。そんなあなたにWagtailです。CMSもPythonにすれば、WEBサイト作成のためだけにわざわざPHPを習得する必要がなくなり、WEBサーバーにPHPをインストールしなくてよくなります。

Read More ...
この記事の
作成日

2020-01-11

更新日

2020-06-28

ページ内検索
目次
WEB MASTER
さいた
神エクセル撲滅協会理事(自称)
さいたま市民 埼玉こそ地上の楽園