nginx将子域重写为文件作为variables

你如何获得子域作为一个variables添加重写

你好 .example.com应该去example.com/user.php?u= 你好,但仍然显示为只是你好 .example.com

我目前在做http://example.com/users/ hello,但想为用户提供Tumblr风格的域名。

rewrite ^/users/(.*)$ /user.php?u=$1 last; 

另外,如果在子域hello.example.com/settings/之后有像/ settings /这样的页面,我需要重写一个settings.php

两件事情。 首先,您需要读取主variables以获取子域,并将其设置为稍后使用的variables。
我使用variables$ sub_domain,然后将该variables追加到URI。

 if ($host ~* (.*)\.example\.com) { set $sub_domain $1; rewrite ^/user.php$ /user.php?u=$sub_domain } 

重写行需要进一步调整。 我在这里举了一个例子。 有关可用选项,请参阅nginx内置variables文档 。