質問: urlから言語コードを削除する 多言語サイトで少し問題があります。 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のコアルーティングで何かを変更する必要があると思いますが、悲しいかな、どこで、何をしているのかわかりません。リクエストごとの.htaccessrewriterule ^en/(.*)$ http://www.example.com/$1 [r=301,l]
回答: 私が知る限り、あなたが望むものは不可能です。/en /は、言語を変更したいことをjoomlaが認識できるようにするために必要です。なぜなら、www.example.com/company/contact.htmlを使用すると、joomlaは言語cookieを調べて、現在アクティブな言語にリダイレクトするからです。したがって、言語を変更するには、英語に切り替えることを明示的にjoomlaに指示する必要があります。英語がアクティブになると、リンクには/ en /がなくなります。