例如:myname.netingcn.com,但实际访问的地址可能为www.netingcn.com/user.php?uid=myname。要使其能正常工作,首先在DSN解析那里需要配置泛域名解析,接下来在nginx配置文件中设置rewrtie即可。
nginx配置如下:
server {
listen 80;
server_name *.netingcn.com;
...
if ($host ~* ^(......).netingcn.com) {
set $sub_name $1;
rewrite ^/ /user.php?uid=$sub_name last;
}
...
这里假设所有的6个字符的子域名都是用户自定义域名,然后对其进行rewrite。另外可以通过set指令把表达式中的某些信息存放在一个变量中,而后可以使用它。
<pre class="html" name="code">server <p> <wbr>{ </wbr></p><p> <wbr> <wbr>listen <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr>192.168.79.129:80; </wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></p><p> <wbr> <wbr>server_name <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr>localhost,*.test.com; </wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></p><p> <wbr> <wbr>root <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr>/www/html </wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></p><p> <wbr> <wbr>index <wbr>index.html <wbr>index.htm; </wbr></wbr></wbr></wbr></p>
if ($host ~ ^(.*).test.com$)
{
set $erji $1;
rewrite ^(.*)$ /$erji$1 last;
}
这样就实现了无限个二级域名访问了。