【发布时间】:2018-02-21 02:45:43
【问题描述】:
我正在使用 nginx 来提供静态新闻类页面。
在顶层有
https://example.com/en/news/ 带有文章概述。
单个项目的 URL 类似于:https://example.com/en/news/some-article
所有网址都包含语言,即/en/ 或/de/。
我想创建一个规则,将不包含语言的请求重定向到正确的 URL(语言基于 IP 映射,可通过$lang 获得)。
以下应该可以工作(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;
}
}
到目前为止,这导致了无限重定向。
【问题讨论】:
标签: regex nginx nginx-location