NGINXを使用した多言語サポートとローカリゼーションの実装には、URLの書き換えとコンテンツの交渉のための強力な機能を活用することが含まれます。最も一般的なアプローチは、nginx構成ファイルのrewrite
指令を使用して、URLパスまたはパラメーターに基づいてリクエストをリダイレクトすることです。たとえば、 /en/home
、 /es/home
、 /fr/home
のようなURLをそれぞれ構成できます。
Nginx構成の基本的な例は次のとおりです。
<code class="nginx">server { listen 80; server_name yourdomain.com; location / { try_files $uri $uri/ /index.php?$args; } location ~ ^/(en|es|fr)/ { # Set language variable set $lang $1; # Rewrite to appropriate directory rewrite ^/(en|es|fr)/(.*)$ /$2 break; # Set locale for your application (eg, using environment variables) # This depends on your application's setup. Example for PHP: fastcgi_param LANG $lang; # Pass the request to your application server (eg, PHP-FPM) include fastcgi_params; fastcgi_pass unix:/run/php/php7.4-fpm.sock; fastcgi_index index.php; } # Default to English if no language is specified location / { set $lang en; # ... rest of your configuration ... } }</code>
この構成は、URLパスの最初の部分(例えば、 /en
)を使用して言語を決定します。 rewrite
指令は、アプリケーションに渡す前に、URLから言語プレフィックスを削除します。 set
ディレクティブは、アプリケーションがアクセスできる変数$lang
を設定して、適切な言語ファイルまたは翻訳を決定します。アプリケーションサーバーのセットアップに従って、 fastcgi_pass
行を調整することを忘れないでください。また、より洗練された言語検出のために、CookieやAccept-Language
ヘッダーを使用するなど、他の方法を使用することもできます。
いくつかのベストプラクティスでNginxのヒンジを使用した効率的な多言語コンテンツ配信:
expires
ディレクティブを使用して、静的資産(画像、CSS、JavaScript)に適切なキャッシュヘッダーを設定し、可能な限り動的コンテンツにキャッシュプラグインを活用します。更新のコンテンツの種類と頻度に基づいて、さまざまなキャッシュ時間を検討してください。さまざまな言語バージョンのシームレスな取り扱いには、テクニックの組み合わせが含まれます。
Accept-Language
ヘッダーを使用して、優先言語を決定できます。これには、より複雑な構成が必要ですが、よりユーザーフレンドリーなエクスペリエンスを提供します。 if
ディレクティブと$http_accept_language
変数を使用する必要がある場合があります。?lang=en
)を使用して言語を指定できます。これはエレガントではありませんが、特定の状況では役立ちます。Nginxで多言語サポートを実装することは、いくつかの課題を提示することができます。
これらの課題を克服するには、慎重な計画、徹底的なテスト、適切なツールとテクニックの使用が必要です。適切に構造化されたアプローチを使用し、Nginxの機能を活用し、ユーザーエクスペリエンスに焦点を当てることで、多言語サポートの実装が成功するようになります。
以上がNginxで多言語のサポートとローカリゼーションを実装する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。