web-dev-qa-db-ja.com

記事IDのないSEF URLが原因で404記事が見つからないというエラーが発生する

here の説明に従ってrouter.phpを編集して、URLから記事IDを削除しました。

これはほとんどの場合問題なく動作しますが、適切なページの代わりに404 Article not foundエラーが表示されるページがいくつかあります。元のURL(記事IDが埋め込まれている)は引き続き機能します。私の知る限り、重複するエイリアス名はありませんが、まだ何も除外していません。

私は現在Joomla 3.4.8を使用しています。何か案は?

2
GKarRacer

さて、あなたは私の問題に直面したと思います。

あなたはここを見ることができます-あなたはそれが起こっている理由とそれを素早く修正する方法を見つけるでしょう。

https://github.com/joomla/joomla-cms/pull/10261

1
Alexandr

はい、router.phpを書き換えることでIDなしでURLを取得することは可能ですが、将来の互換性のためにコアファイルやcom_contentなどのコアコンポーネントを変更することはお勧めしません。

SEF404のようなコンポーネントを使用して、お気に入りのURLを書き換える必要があります。 (Joomla 4はより良い組み込みソリューションを持っているかもしれません。)

開発者向けのヒント:コンポーネントルーターを確認してください。独自のロジックを記述して、IDなしでseoに最適化されたエイリアスを使用してアイテムのURLを取得できます。

1
Dennis Heiden

(既にチェックしたと言っていても)問題はエイリアスの重複が原因であると私は言います。エイリアスが#__contentテーブルに2回存在しないことを確認することをお勧めします(phpMyAdminで実行できます)。重複したエイリアスがゴミ箱にある記事にある場合でも、この問題が発生します(そのため、ゴミ箱にある記事を削除することも重要です)。

ちなみに、SEFのURLからIDを削除することについてかなり前に記事を公開しました(これは here )で、非常に単純なプラグインでこれを行う方法について誰かがコメントを投稿しました(中心的な変更の代わりに)。

1
itoctopus