多くの人がWebサイトのsitemap.xmlファイルを生成する際にGoogle XML Sitemapsプラグインを使用していると思います。Naibaも以前はそうでしたが、後でAll in One SEO Packの機能にsitemap生成コンポーネントが組み込まれていることに気づき、Google XML Sitemapsを使用しなくなりました。 先ほど突然、sitemap.xmlが404エラーになり、Google XML Sitemapsに切り替えても同様に404エラーになりました。
原因は不明ですが、ここ数日ファイルキャッシュを調整していました(ルールを確認したところ、xmlに8日間のキャッシュが設定されていたために404エラーが発生したようです。xmlを除外すれば問題ありません。)以下に
sitemap.xmlファイルの404エラー解決方法を説明します。 404エラーが発生する場合、ほとんどが擬似静的設定の問題です。 例えば、この記事を書いているときに、ファイルキャッシュを調整している際にxmlファイルもキャッシュしていたことに気づき、キャッシュルールを削除すれば解決しました。
sitemap.xml 404エラーの解決方法
更
安全な方法は、sitemap.xmlに擬似静的ルールを追加することです。 以下の2つの擬似静的ルールはどちらも有効です。 Google XML Sitemapsプラグインが推奨するnginxルール
rewrite ^/sitemap(-+([a-zA-Z0-9_-]+))?\.xml$ "/index.php?xml_sitemap=params=$2" last;
rewrite ^/sitemap(-+([a-zA-Z0-9_-]+))?\.xml\.gz$ "/index.php?xml_sitemap=params=$2;zip=true" last;
rewrite ^/sitemap(-+([a-zA-Z0-9_-]+))?\.html$ "/index.php?xml_sitemap=params=$2;html=true" last;
rewrite ^/sitemap(-+([a-zA-Z0-9_-]+))?\.html.gz$ "/index.php?xml_sitemap=params=$2;html=true;zip=true" last;
All in One SEO Packが推奨するルール
#rewrite rules for AIOSEOP XML Sitemap
rewrite ^/sitemap.xml$ /index.php?aiosp_sitemap_path=root last;
rewrite ^/sitemap_(.+)_(\d+).xml$ /index.php?aiosp_sitemap_path=$1&aiosp_sitemap_page=$2 last;
rewrite ^/sitemap_(.+).xml$ /index.php?aiosp_sitemap_path=$1 last;
rewrite ^/sitemap.xml.gz$ /index.php?aiosp_sitemap_path=root.gz last;
rewrite ^/sitemap_(.+)_(\d+).xml.gz$ /index.php?aiosp_sitemap_path=$1.gz&aiosp_sitemap_page=$2 last;
rewrite ^/sitemap_(.+).xml.gz$ /index.php?aiosp_sitemap_path=$1.gz last;
Nginx擬似静的ルールの追加方法
上記の疑似静的ルールを仮想ホストのnginx設定ファイルに追加し、nginxを再起動するだけです。LNMPワンクリックパッケージのユーザーは、直接include rewrite/wordpress.conf;このコードの上に追加します。宝塔パネルのユーザーは、サイトの疑似静的ルールに上記のコードを追加してください。
その他の注意事項
キャッシュプラグインを使用している場合は、以下の2つのページを例外に追加し、訪問者がキャッシュページにアクセスした際にエラーが発生しないようにしてください。sitemap.xml sitemap.xsl
コメントは終了しました
この記事のコメント機能は終了しています。ご質問がある場合は、他の方法でお問い合わせください。