Concrete CMS(Concrete5)の自動実行ジョブからsitemap.xmlを作成したのに、ブラウザで該当URLにアクセスすると404エラーとなり非表示に。利用サーバーはエックスサーバーで、おそらくレンタルサーバー社による設定が影響しているようです。サイトマップの生成方法から、表示させるエラー解消方法まで説明します。
目次:
concrete5でsitemap.xmlを自動実行ジョブで作成
まず、concrete5ダッシュボードに管理者権限でログイン。
管理画面 > システムと設定 > 最適化 > 自動実行ジョブ をクリック。
次に、"sitemap.xmlファイルを生成する" というジョブの「実行」ボタンをクリックし、サイトマップをt生成させます。
すると上画面のように、「サイトマップが作成されました(〇〇ページ)」というメッセージが表示されます。
同時に「サイトマップ」でリンクが作成されます。このリンク先 = XMLサイトマップ設置先はデフォルトでは"ルートURL/index.phpsitemap.xml"となります。
このときもし、書き込みエラーのメッセージが出てしまった場合には下記リンクを参照。
concrete5でsitemap.xmlを生成する | immature
XMLファイル自体は作成されているのに、ブラウザからサイトマップを表示できない
しかし、上記サイトマップが作成されたリンク先にジャンプしても、404エラーの画面になってしまいます。
これはレンタルサーバー会社の仕様によるものとされています。下記の手順を実行してください。
サイトマップのファイル名を変更する
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と指定します。
すると、生成されたサイトマップをブラウザ上からも確認することができました。
この記事の気になった箇所を読み返す:
Category: Concrete CMS