web-dev-qa-db-ja.com

特定の番号を含む存在しないURLは、404エラーの代わりにホームページを表示します

これは私のWebサイトの1つで気付いたものです。

ホームページのURLの後に特定の数字を追加すると、期待どおりに404が得られません。ホームページが表示され、ブラウザページのタイトルは他のメニュー項目の1つから取得されます。ここではいくつかの例を示します。

http://www.example.com/36-this-menu-item-does-not-exist 上記のURLで、36を32または37に変更すると、同じようになります- http://www.example.com/12-this-shows-a-404-error

このようなものを見たことがありますか?

私はそれがSEFのURLまたはおそらく何か他のものと関係があるのだろうかと思っています。

.htaccessをチェックして、URLにこれらの番号のリダイレクトがないことを確認しました。

任意のヒントをいただければ幸いです。

1
PaxAnura

これはルーターが機能する方法です。番号は記事のIDです。 JoomlaはURLをページに変換する方法を知っている必要があるため、URLに含まれる数値を調べて、それが記事と一致するかどうかを確認する方法があります。

数を超えるものはすべてSEO /人間が読めるリンク用ですが、Joomlaはそれを知る必要がないため、何でもかまいません。

あなたの404ページには、IDが一致する記事がないと考えられます。

これがどのように機能するかを確認したい場合は、components/com_content/router.phpの下にあります。プロセスに関しては非常によくコメントされており、この場合に当てはまると思われるビットは次のとおりです。

/*
         * If there is only one segment, then it points to either an article or a category.
         * We test it first to see if it is a category.  If the id and alias match a category,
         * then we assume it is a category.  If they don't we assume it is an article
         */
1
Richard B

はい、これが以前に起こったのを見たことがありますが、それは 空白のコンポーネント が原因でした。

したがって、このコンポーネントを使用して、モジュールのみのホームページを作成している可能性があります。

残念ながら、これに対する修正はありませんでした。前回チェックして、すぐにコアな方法に戻りました。たとえば、記事アイテムがまったくない特集記事のホームページ、または単一の記事ページのロードモジュールなどです。

0
FFrewin