12
产品文档
控制台使用
基础类问题
应用类问题
网络类问题
安全类问题
常见问题
如何将NGINX泛解析的匹配域名绑定到子目录配置

网站的目录结构为:

# tree /home/wwwroot/zhiniaoyun.net/home/wwwroot/zhiniaoyun.net
├── bbs
│   └── index.html
└── www
    └── index.html2 directories, 2 files

/home/wwwroot/zhiniaoyun.net为nginx的安装目录下默认的存放源代码的路径。

bbs为论坛程序源代码路径;www为主页程序源代码路径;把相应程序放入上面的路径通过;http://www.zhiniaoyun.net 访问的就是主页http://bbs.zhiniaoyun.net 访问的就是论坛,其它二级域名类推。

有2种方法,推荐方法一

方法一:

server {
listen 80;
server_name ~^(?<subdomain>.+).zhiniaoyun.net$;
access_log /data/wwwlogs/zhiniaoyun.net_nginx.log combined;
index index.html index.htm index.php;
root /home/wwwroot/zhiniaoyun/$subdomain/;
location ~ .php$ {
    fastcgi_pass unix:/dev/shm/php-cgi.sock;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
    }
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|ico)$ {
    expires 30d;
    }
location ~ .*\.(js|css)?$ {
    expires 7d;
    }
}

方法二:

server {
listen 80;
server_name *.zhiniaoyun.net;
access_log /home/wwwlogs/zhiniaoyun.net_nginx.log combined;
index index.html index.htm index.php;
if ($host ~* ^([^\.]+)\.([^\.]+\.[^\.]+)$) {
    set $subdomain $1;
    set $domain $2;
}
location / {
    root /home/wwwroot/zhiniaoyun.net/$subdomain/;
    index index.php index.html index.htm;
}
location ~ .php$ {
    fastcgi_pass unix:/dev/shm/php-cgi.sock;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
    }
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|ico)$ {
    expires 30d;
    }
location ~ .*\.(js|css)?$ {
    expires 7d;
    }
}


这条帮助是否解决了您的问题? 已解决 未解决

提交成功!非常感谢您的反馈,我们会继续努力做到更好! 很抱歉未能解决您的疑问。我们已收到您的反馈意见,同时会及时作出反馈处理!