这是我们在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/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; } }
上面的位置块有什么问题,我们应该如何命名位置块? 谢谢您的帮助。
更新:
这里是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;