私はJoomla 3.3.6
(編集: 3.5.
) サイトを 3 レベルのみで構成しています:
- 4 つの大きなカテゴリ (i、ii、iii、iiii)
- それぞれがいくつかの中間カテゴリ (A、B、C、...) に分類されます。
- そして最後に記事
- 2 つの言語 (en、pt)
URL
設定後のSearch Engine Friendly URLs
、Use URL rewriting
、Adds Suffix to URL
およびmultilanguage support
は、次の形式である必要があります。
http://www.example.com/en/bigcatiii/intercatA/articlex.html
しかし、Joomla をインストールしていて、Joomla-Baby-Version 以来の解決策を求めている他の多くの人と同じように、私は次のようになりました。
http://www.example.com/en/bigcatiii/666-intercatA/articlex.html
ここで、666 は何の目的もなくカテゴリ IDを示す地獄の数字です
答えを探していると、次の答えが見つかりました。
Edit “components/com_content/router.php“
(You’ll probably have to re-do this step every time you update Joomla.)
Replace the lines 38 and 290 with:
$advanced = $params->get('sef_advanced_link', 1);
and Replace line 426 with
->where($db->quoteName(‘alias’) . ‘ = ‘ . $db->quote($segment));
えーと、まず426行目は原作でもそうですよね。第二に、これはうまくいきません。それは動作します:
http://www.example.com/en/bigcatiii/intercatA/articlex.html
ただし、次の場所を参照すると、 404エラーで中断します。
http://www.example.com/en/bigcatiii/intercatA.html
また、ID番号が違うことに気付きました。URL全体が
http://www.example.com/en/bigcatiii/666-intercatA/articlex.html
同じカテゴリの説明ページは
http://www.example.com/en/bigcatiii/333-intercatA.html
.htaccessに基づいて、サウンドは良くても機能しない別のソリューションもあります。
RewriteEngine on
RewriteBase /
RewriteRule (\d+)-([^/]*) $2 [R=301,L]
問題ないようにURLs
見えますが、ページが見つかりません。Joomla コアを変更する代わりに.htaccessを使用して解決策を提供できれば、非常に良いでしょう。
それでも、この他のグーグルの提案が有効であれば、Joomlaコアを変更しても問題ありません。
Copy “components/com_content/router.php” to “/templates/your-template/html”
つまり、「ローカル」に移動router.php
すると、アップグレード後にすべてのものをやり直す必要がなくなります。(もちろん、再度ミラーリングした方がよい場合に備えて、router.php が更新されない限りは。)
このパズルを解決していただきありがとうございます。
参考文献
4- joomla 3.0 の URL から記事 ID を削除する
編集 (2016/May/02): Joomla の最新バージョン 3.5 の新しい報奨金