少し背景を説明すると、すべて同じコードベースで実行される 25 の異なる WP サイトのネットワークを管理しています。最近、SEO アナリストが参加しました。彼は、次のような URL で、いくつかのサイトに奇妙な 404 問題があることに気付きました。
**/category/featured-article/ryan-mcnamara-new-different/news/page/2/**
そのため、すべてのプラグインとフックを無効にして、新規インストールを試みましたが、この問題はまだ発生しています。サイトのパーマリンク構造が .html で終わる場合にのみ発生することが判明しました。そこで、書き換えコードを詳しく調べたところ、これが URL で起こっていることがわかりました。**/category/featured-article/ryan-mcnamara-new-different/news**
- パーマリンク構造が の場合
**/%category%/%postname%/**
、使用可能な書き換えルール ($wp_rewrite->rewrite_rules()
) のうち、このルールが一致します:**(.+?)/([^/]+)(/[0-9]+)?/?$**
、予想どおり 404 が発生します。 - パーマリンク構造が
**/%category%/%postname%.html**
である場合、次のルールが一致します:**(.+?)/?$**
にマップされる**index.php?category_name=$matches[1]**
ため、カテゴリがレンダリングされる理由 ユーザー/ボットがこれらのカテゴリ ページを見つけてページネーション リンクをクリックすると、 に移動し**/category/featured-article/ryan-mcnamara-new-different/news/page/2/**
、404 が発生します。
最初の質問は、そもそも人々がこれらのページをどのように見つけているかということです。これは私が対処できる問題です。このフォーラムへの質問は、これは WP がデフォルトで持っている書き換えのバグですか、それともページネーション URL の作成に関して paginate_links 関数をよりスマートにする必要がありますか? 誰もこの問題を見たことがありますか?
警告: いいえ、すべてのサイトに .html を強制的に削除することはできません。また、この問題のためにコア WP コードを変更することもできません。