2

英語を使用する場合は、次のURLを適用する必要があります。

http://example.org/services/myservice/

別の言語を使用する場合は、次のURLを適用する必要があります。

http://example.org/sirvici/misirvice/

Yiiでこれを処理する簡単で標準的な方法はありますか?

4

1 に答える 1

1

はい、Yii でこれを行うことができますが、以下を犠牲にします。

  • 自動コントローラー/アクション マッピング (これがどのように機能するかによって異なります)
  • リクエストごとに余分な作業負荷がかかるため、速度が少し遅くなります。

それでも問題ない場合は、先に進むことができます。カスタム URL ルールを作成し、すべての URL を処理する必要があります。これは十分に文書化されています。次に、手動で URL を切り離し (十分に文書化された方法によって)、ユーザーが現在選択している言語から各部分を翻訳する必要があります (言語を推測するという地獄を経験したくない場合を除き、これを知る必要があります Oo )。これで、URL の各部分の翻訳ができました。おめでとうございます。

動作する場合と動作しない場合がある部分は次のとおり
です。 これを Yii URL パーサーに渡して、コントローラー、アクション、およびパラメーターの自動マッピングを行うことができます。これは、URL の事前解析を行うだけで、Yii はそこから続行することを意味します。

それがうまくいかない場合は、独自のものを作成し (CUrlRule などで Yii を少しおんぶして)、マッピング ロジックを実行する必要があります。

My Two Sense
ほとんどの Web アプリでは、これはお勧めしません。これは、非常に異なる URL から同じコンテンツに複数の方法でアクセスできることを意味します。これは、SEO の観点からも、ユーザビリティの観点からも悪いことです。また、コンテンツを再度インデックスに登録しないことをGoogleに知らせるために、それらを互いにマッピングする方法を特に簡単に提供することもできません. さらに、それがあなたに多くの利益をもたらすとは思えません。ほとんどの単純なユーザーは、URL バーに注意を払いません。また、それが母国語であっても、ほとんどの場合、URL の文言からページとそのコンテンツについてあまり推測しません。

これを続行する場合はお知らせください。どうなるか知りたいです。

于 2012-07-03T09:37:08.213 に答える