这是我们在 ubuntu 12.04 服务器上加载 nginx 时遇到的错误:
nginx: [emerg] invalid number of arguments in "location" directive in /opt/nginx/conf/nginx.conf:58
我们试图做的是将一个字符串附加到输入的 uri 末尾。例如,如果输入了mysite.com/abcd
或,它们应该mysite.com/abcd/
nginx
rewrite
mysite.com/abcd/auth/signin
以下是我们所拥有的nginx.conf
:
location {
rewrite "/[a-zA-Z]\w{1,9}/" /$1/auth/signin last;
rewrite "/[a-zA-Z]\w{1,9}" /$1/auth/signin last;
}
}
上面的位置块有什么问题?我们应该如何命名位置块?谢谢您的帮助。
更新:
这是server
nginx.conf 中的块:
server {
listen 80;
server_name mysite.com;
root /var/www/;
passenger_enabled on;
rails_env production;
passenger_base_uri /nbhy;
...
}
答案1
位置块需要 uri。因此,您可能需要以下内容:
location / {
rewrite "/[a-zA-Z]\w{1,9}/" /$1/auth/signin last;
rewrite "/[a-zA-Z]\w{1,9}" /$1/auth/signin last;
}
或者,如果您不想将这些重写应用于某个路径,只需将位置部分全部删除即可。即
rewrite "/[a-zA-Z]\w{1,9}/" /$1/auth/signin last;
rewrite "/[a-zA-Z]\w{1,9}" /$1/auth/signin last;