17

私はJoomla 3.3.6(編集: 3.5.) サイトを 3 レベルのみで構成しています:

  • 4 つの大きなカテゴリ (i、ii、iii、iiii)
  • それぞれがいくつかの中間カテゴリ (A、B、C、...) に分類されます。
  • そして最後に記事
  • 2 つの言語 (en、pt)

URL設定後のSearch Engine Friendly URLsUse URL rewritingAdds 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 が更新されない限りは。)

このパズルを解決していただきありがとうございます。

参考文献

1- URL の記事 ID を変更/削除しますか?

2-記事ID番号の削除

3- URL の記事 ID を削除するには?

4- joomla 3.0 の URL から記事 ID を削除する

5- SEF の有効化

6- joomla 3 URL から記事 ID を削除する

7- joomla 3 URL から記事 ID を削除する

8- .htaccess リダイレクト ルール

9- .htaccess のテスト


編集 (2016/May/02): Joomla の最新バージョン 3.5 の新しい報奨金

4

4 に答える 4

2

joomla 3.5を新しくインストールしたばかりで、古い方法が機能します。ルーターファイルで何かが変更されているため、joomla のアップグレード後に手順を繰り返す必要があります。

ラインは 34 インチと 295 インチになりました./components/com_content/router.php

を再び次のように変更し0ます1

$advanced = $params->get('sef_advanced_link', 1);


私の URL は、たとえばon でhttp://joomla.lan/en/category-en-gb/article-en-gb 問題なく動作Search Engine Friendly URLsします。

Adds Suffix to URL切り替えてYes.htmlURL に追加します。
Use URL RewritingオプションでUnicode Aliases動作します。IIS7 または Apache で URL 書き換えエンジンを使用する場合、名前htaccess.txt.htaccessおよびwebconfig.txtに変更する必要がありますwebconfig。一部のホスティング事業者では、サーバー構成が制限されていることに注意してください。が表示された場合は、行500 internal server errorを編集.htaccessしてコメント アウトするOptions +FollowSymlinksOptions -Indexes、および/またはRewriteBase /前に を追加する必要があります#。後者は Joomla 3.5 ですでに無効化されています。RewriteBase設定は、Joomla が Web ルートではなくサブフォルダーにインストールされている場合に役立ちます。

Use URL Rewritingに設定された他のサーバーではNo


問題を再現できません。これら 2 つのコード編集ですべてが正しく機能しています。もう一度試してみてください。解決できない場合は、正確な動作 (URL、エラーなど) を投稿してください。修正できない場合は、ソースを再インストールする必要があります。

于 2016-05-09T10:20:17.203 に答える