nginx 重写规则构建漂亮 URL 的最佳方式

nginx 重写规则构建漂亮 URL 的最佳方式

网页的访问方式如下:

example.com/?site=website 

在此示例中,我正在访问位于 的网站example.com domain

任何人都可以建议重写规则的最佳方法,以便上面的内容可以显示并通过 访问吗example.com/website

nginx, Centos 7

答案1

您可以使用以下内容,请记住IfIsEvil

location = / {
  if ($arg_site) {
    return 302 /$arg_site;
  }
}

答案2

有关的:

这个想法是您创建一个重定向循环,但实际上并非如此,因为外部重定向与内部重定向之间存在差异,因此,循环不是封闭的循环,因为一个重定向明确仅是外部的,而另一个重定向则明确仅是外部的内部的:

location = / {
    if ($arg_site) {
        return  302 /$arg_site;
    }
    return  200
    "<!DOCTYPE html><title>site</title>
    <form><input name='site' value='website'/></form>\n";
}
location / {
    rewrite     ^/([^/]*)\$     /?site=$1   break;
    proxy_pass  http://javabackend:8080;
}

相关内容