WordPress 5.5でXMLサイトマップの自動生成が標準機能として実装されました。
しかしこの自動生成サイトマップ。
出力するURLを細かく制御できないわ、更新日付は出力しないわ。
現状ではプラグインに任せた方がいいので無効化します。
なお、KUSANAGIとしていますが、当然Nginx全般で使えます。
ファイル名は適当に読み替えてください。
Nginxで標準XMLサイトマップをリダイレクトする方法
Nginxで標準XMLサイトマップをリダイレクトする方法は2つあります。
・functions.phpに生成機能を無効化するコードを記述する方法。
どちらも簡単ですし、どちらでもいいです。
ただし、以下をお読みください。
プラグイン「XML Sitemap & Google News」を使うなら本稿の作業は不要【2024年9月16日追記】
定番プラグインXML Sitemap & Google Newsに置き換える場合。
プラグインが自動で前者のリダイレクトをやってくれます。
なので、
前からそうだったっけ?
さあ……
もしそうなら本稿を書いてないと思うんですけど……。
ちょっと記憶が定かじゃないです。
ただこのプラグインに置き換える人がほとんどのはずなので、本稿の意味がなくなってしまったのは確かです。
以下は、勉強したいならお読みください。
Nginxの設定ファイルにリダイレクトを記述する方法
プラグインが出力するXMLのURLを「~/sitemap.xml」とします。
/etc/opt/kusanagi/nginx/conf.d(KUSANAGI9の場合)
あるいは
/etc/nginx/conf.d/(KUSANAGI8の場合)
にある(プロファイル名)_ssl.confに次の記述をします。
rewrite ^/wp-sitemap.xml(.*)$ https://【ドメイン名】/sitemap.xml$1 redirect;
終わったら再起動します。
#kusanagi restart
https://【ドメイン名】/wp-sitemap.xmlにアクセスしてリダイレクトされているか確かめてみてください。
正規表現の参考にした記事はこちらです。
functions.phpに生成機能を無効化するコードを記述する方法
子テーマのfunctions.phpに次のコードを書き込みます。
add_filter( 'wp_sitemaps_enabled', '__return_false' );
https://【ドメイン名】/wp-sitemap.xmlにアクセスして404が返ってくるか確かめてください。
まとめ
WordPressがまともに対応してくれたら、プラグイン1つ減らせるんですけどね
それまではリダイレクトして気長に待ちましょう