これを試して:
location ~ ^/([a-z]{2})(/.*){0,1} {
rewrite ^/[a-z]{2}$ /?locale=$1 break;
rewrite ^/[a-z]{2}/(.*)$ /$2?locale=$1 break;
location / {
# I don't know what happend to your request after rewrite above
# so I assume that you proxy pass it
proxy_pass http://my.php.server/$uri?$query_string =404;
}
location
ここで、両方の例が最初のパターンに一致します。このブロック内で、要求された URL がさまざまなパターンと照合されます。
最初のパターンが一致した場合、2 番目の例が採用されます。
2 番目のパターンが一致する場合、最初の例が使用されます。
2番目のlocation
ブロックは最後に試してみると機能し、ここで書き換えられたURLが来て、そのまま使用されます。値は不変$uri
であるため、ここでur を使用しています。$request_uri
最初のロケーション ブロックの後の param の値は、または$uri
に変更されます。クエリ文字列が含まれていないため、変数を使用して手動で割り当てる必要があります。/?locale=en
/foo?locale=en
$query_string