私は静的なニュースのようなページを提供するためにnginxを使用しています。 トップレベルには、記事の概要を示す https://example.com/en/news/
があります。 個々のアイテムのURLは、https://example.com/en/news/some-article
リクエストURIに特定の単語が含まれていないと、nginxでリダイレクトする方法
です。すべてのURLには、/en/
または/de/
のような言語が含まれています。 にの言語が正しいURLに含まれていないというリクエストをリダイレクトするルールを作成したいとします(この言語は$lang
で利用可能なIPに基づいてマップされています)。
次は(en
例)動作するはずです:
/news/ --- redirect ---> /en/news/
/news/some-article --- redirect ---> /en/news/some-article
私の試みは、これまでのところ、これは無限リダイレクトが生じ、この
location ~* /news/.*$ {
if ($request_uri !~* /(de|en)/$) {
return 302 https://example.com/$lang/$request_uri;
}
}
のようなものが見えました。
[nginx URL regexを使った負の正規表現?](https://stackoverflow.com/questions/16159108/nginx-url-rewrite-using-negative-regex) – ctwheels