redirect - nginx.conf 重定向多个条件

标签 redirect nginx

我想使用 Nginx 在两种情况下重定向请求。

这不起作用:

  if ($host = 'domain.example' || $host = 'domain2.example'){
    rewrite ^/(.*)$ http://www.domain.example/$1 permanent;
  }

正确的做法是什么?

最佳答案

我以前也遇到过同样的问题。由于 Nginx 无法执行复杂的条件或嵌套的 if 语句,因此您需要计算 2 个以上不同的表达式。

将变量设置为某个二进制值,然后在两个不同的 if 语句中任一条件为 true 时启用:

set $my_var 0;
if ($host = 'domain.example') {
  set $my_var 1;
}
if ($host = 'domain2.example') {
  set $my_var 1;
}
if ($my_var = 1) {
  rewrite ^/(.*)$ http://www.domain.example/$1 permanent;
}

关于redirect - nginx.conf 重定向多个条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4833238/

相关文章:

linux - 网络中已映射 300 台计算机后 Samba 共享重定向

java - 基于访问的重定向

javascript - 配置 nginx 以提供 yeoman Angular 生成器文件的最佳方法?

ubuntu - Django 说所有图像无效,但 PIL 有效

nginx limit_req 不起作用

c# - 为什么 Response.Redirect 不重定向外部 URL?

Python 日志记录从多个进程重定向标准输出

seo - 如何向 Googlebot 提供照片库更新?

laravel - Homestead 和 NGINX 错误 : emerg] invalid number of arguments in "proxy_set_header"

Nginx + LUA,如何输出文件?