Concrete CMSでsitemap.xmlがブラウザ上で表示されない

Last Edited Time
Nov 5, 2021 4:49 AM
Category
concrete CMS
Not yet (Unpublish)
Podcast
Super Published

Concrete CMS(Concrete5)の自動実行ジョブからsitemap.xmlを作成したのに、ブラウザで該当URLにアクセスすると404エラーとなり非表示に。利用サーバーはエックスサーバーで、おそらくレンタルサーバー社による設定が影響しているようです。サイトマップの生成方法から、表示させるエラー解消方法まで説明します。

image

concrete5でsitemap.xmlを自動実行ジョブで作成

まず、concrete5ダッシュボードに管理者権限でログイン。

管理画面 > システムと設定 > 最適化 > 自動実行ジョブ をクリック。

image

次に、"sitemap.xmlファイルを生成する" というジョブの「実行」ボタンをクリックし、サイトマップをt生成させます。

image

すると上画面のように、「サイトマップが作成されました(〇〇ページ)」というメッセージが表示されます。

同時に「サイトマップ」でリンクが作成されます。このリンク先 = XMLサイトマップ設置先はデフォルトでは"ルートURL/index.phpsitemap.xml"となります。

このときもし、書き込みエラーのメッセージが出てしまった場合には下記リンクを参照。

XMLファイル自体は作成されているのに、ブラウザからサイトマップを表示できない

しかし、上記サイトマップが作成されたリンク先にジャンプしても、404エラーの画面になってしまいます。

image

これはレンタルサーバー会社の仕様によるものとされています。下記の手順を実行してください。

サイトマップのファイル名を変更する

FTP等から、生成されたsitemap.xmlのファイル名を変更します。私の場合はsitemaps.xmlへと変更しました。

sitemap.xmlは、通常であればconcrete5のインストールディレクトリと同じ階層(インストールディレクトリ内の1つ上の階層)に生成されています。

また、サイトマップを生成するたびにこの作業を行うのは煩雑なため、以降のサイトマップファイル名を自動で変更させるため、下記のようにオーバーライドを記述します。

もし、sitemap.xml を sitemaps.xml のようにファイル名を変更してもいいのであれば、application / config / generated_overrides / concrete.php に以下の文を追加してみてください。

 'sitemap_xml' => [
'file' => 'sitemaps.xml',
],

URL/index.php/sitemaps.xmlではなく、URL/sitemaps.xmlにアクセスする

ジョブの画面で生成される「サイトマップ」へのリンクはURL/index.php/sitemap.xmlなのですが、そうではなく、index.phpを除いたルートURL直下でsitemaps.xmlと指定します。

すると、生成されたサイトマップをブラウザ上からも確認することができました。