在用nginx重写uri时出错

这是我们在ubuntu 12.04服务器上加载nginx的错误:

nginx: [emerg] invalid number of arguments in "location" directive in /opt/nginx/conf/nginx.conf:58 

我们要做的是在input的uri末尾添加一个string。 例如,如果inputmysite.com/abcdmysite.com/abcd/ ,则nginx应将其rewritemysite.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; } } 

上面的位置块有什么问题,我们应该如何命名位置块? 谢谢您的帮助。

更新:

这里是nginx.conf中的server块:

  server { listen 80; server_name mysite.com; root /var/www/; passenger_enabled on; rails_env production; passenger_base_uri /nbhy; ... } 

一个位置块需要一个uri。 所以,你可能需要这个:

 location / { rewrite "/[a-zA-Z]\w{1,9}/" /$1/auth/signin last; rewrite "/[a-zA-Z]\w{1,9}" /$1/auth/signin last; } 

或者,如果您不想将这些重写应用于某个path,则只需完全移除位置部分即可。 即

 rewrite "/[a-zA-Z]\w{1,9}/" /$1/auth/signin last; rewrite "/[a-zA-Z]\w{1,9}" /$1/auth/signin last;