+
95
-

回答

用 Nginx 实现主域名下不同子域名指向不同目录,可以通过配置多个 server 块来实现,每个 server 块监听不同的子域名,并设置对应的 root 目录。

以下是一个示例配置,假设主域名是 example.com,有两个子域名 www.example.com 和 blog.example.com,分别指向 /var/www/html 和 /var/www/blog 目录:

server {
    listen 80;
    server_name www.example.com;
    root /var/www/html;

    location / {
        index index.html index.htm;
    }
}

server {
    listen 80;
    server_name blog.example.com;
    root /var/www/blog;

    location / {
        index index.php index.html index.htm;
    }
}

解释:

server 块: 每个 server 块定义一个虚拟主机,用于处理特定域名或 IP 地址的请求。listen: 指定监听的端口号,这里都是 80 端口,表示 HTTP 默认端口。server_name: 指定要匹配的域名,可以填写多个,以空格分隔。 root: 定义网站根目录,当请求的 URI 对应文件系统上的目录时,会自动在这个目录下寻找索引文件。location /: 匹配所有请求,index 指令指定了默认访问的文件名。

其他说明:

你也可以为每个子域名配置不同的端口,或者使用 HTTPS 协议。如果需要将根域名 example.com 也指向一个目录,可以再添加一个 server 块,并将 server_name 设置为 example.com。配置完成后,记得重启 Nginx 服务使配置生效: sudo systemctl restart nginx (具体命令可能因系统而异)。

网友回复

我知道答案,我要回答