多言語サイトで少し問題があります。 English を含む3.3.6 Joomlaインストールで、FaLangを使用して4言語(英語、スペイン語、フランス語、イタリア語)の翻訳を処理しています。 デフォルトサイト言語として設定します。
言語フィルターで "Remove URL Language Code" を有効にしました。 英語でサイトを表示すると、私のURLは次のようになります
www.example.com/company/contact.html
そして言語スイッチャーは他の言語を次のように表示します:
www.example.com/es/company/contact.html
www.example.com/fr/company/contact.html
www.example.com/it/company/contact.html
私の問題は、言語を他の3つに変更した場合、言語スイッチャーで英語のURLが次のようになることです。
www.example.com/en/company/contact.html
リンクをクリックすると、303で.../en/...
から.../...
にリダイレクトされます。
私の知る限り、これはJoomlaの意図ですが、英語のURLから/en/
を削除して、私の言語のいずれかの言語でWebサイトを表示すると、英語のURLは次のようになります。
www.example.com/company/contact.html
私はFaLangの言語スイッチャーを使用していますが、Joomla独自の言語スイッチャー/翻訳システムでもこの「問題」を経験しています。
私はSEFコンポーネントを使用しておらず、これを解決できるものも見つけていません。Joomlaのコアルーティングで何かを変更する必要があると思いますが、悲しいかな、どこで、何をしているのかわかりません。
リクエストごとの.htaccess
RewriteRule ^en/(.*)$ http://www.example.com/$1 [R=301,L]
私が知る限り、あなたが望むものは不可能です。/en /は、言語を変更したいことをJoomlaが認識できるようにするために必要です。なぜなら、www.example.com/company/contact.htmlを使用すると、Joomlaは言語Cookieを調べて、現在アクティブな言語にリダイレクトするからです。したがって、言語を変更するには、英語に切り替えることを明示的にJoomlaに指示する必要があります。英語がアクティブになると、リンクには/ en /がなくなります。
現時点では、リクエストした内容は実行できません。この動作は非常に煩わしいので、これを変更するためにプルリクエストをJoomla開発者に送信します。
一方、リダイレクト機能を使用してページをリダイレクトできます。たとえば、ページhttx://yoursite.com/en/products.htmlがあるが、URL httx://yoursite.com/products.htmlを使用したい場合、リダイレクトを作成する必要があるとしましょう/products.htmlから/en/products.htmlへのリダイレクト拡張のURL。悪い点は、言語サフィックスを削除するすべてのURLに対してこれを実行する必要があるということです。
これもJoomlaが自動的に計算する必要があると思います。