我正在使用nginx版本1.4.6。
我无法使map工作。 我有这样的东西:
http { map $arg_f $forum { default 0; 1 2; } # ... server { # ... location = /old.php { if ($forum) { return 301 /forums/$forum/; } return 494; } # ... } # ... }
下面是我用nginx -t获得的nginx -t :
nginx: [emerg] unknown "forum" variable
目标是将旧的URI映射到新的URI。 问题是一些数字论坛ID已经改变了。 我想在Nginx中处理这个,所以如果没有其他简单的方法,我愿意诉诸lua。 只要他们优雅,我可以select其他的解决scheme,但我想知道为什么map不在这里工作。 是否因为重写模块不查询地图,至less在1.4?
我只用nginx v1.4.7testing了下面的最小configuration:
events { worker_connections 1024; } http { map $arg_f $forum { default 0; 1 2; } server { location = /old.php { default_type text/html; if ($forum) { return 200 "OK"; } return 200 "KO"; } } }
它运行完美,所以最可能的原因是你的configuration不正确。 我猜想你在添加map指令方面所做的更改使得它变得不可用。
尝试:
nginx -t来validation你的configuration service nginx reload以捕获在运行时可能发生的在configuration时无法检测到的任何错误。 请注意,使用最新产品总是一个好主意。