我们可能会遇到需要在一个域名下用几套程序来构建一个网站,这时候可能需要在在不同的目录下绑定不同的网站。
比如 根目录 / 是用 Laravel 构建的cms程序,/blog 下绑定的是一个 wordpress 开源博客程序。
问题一:如何将不同程序的代码目录绑定到一个域名下的不同路径?
一般来说各个网站的程序代码在服务器上存放的位置是并列的。比如 /data/wwwroot/cms/,/data/wwwroot/blog
我们要做的是将各个代码目录绑定在一个域名下的目录树上。
比如 http://demo.com/ 指向访问cms程序http:/demo.com/blog 访问博客程序,(有点像 Linux文件系统的挂载)
处理方法是在 server{} 中根据请求路径设置不同的 root ( 网站根目录)
情况一, server 块下只有一个域名,解决方法:
server {
server_name demo.com ;
index index.php index.html;
if ($host ~* ^demo\.com$) {
set $rootdir "/data/wwwroot/cms";
}
if ($request_uri ~* ^/blog/?.*) {
set $rootdir "/data/wwwroot/blog";
}
//如果有论坛程序,可以再绑定到 /bbs 目录
if ($request_uri ~* ^/bbs/?.*) {
set $rootdir "/data/wwwroot/bbs";
}
root $rootdir;
}
这种情况比较简单,根据请求路径设置不同的根目录路径就行了。

本文详细介绍了如何使用Nginx配置在同一域名下不同路径的多站点,包括如何根据请求路径设置不同的网站根目录,以及如何配置不同PHP版本运行不同网站的方法。
最低0.47元/天 解锁文章
3644

被折叠的 条评论
为什么被折叠?



