You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Nginx:共享同一段配置的子域名如何配置不同网站图标?

可以实现,无需拆分server配置块

你可以通过两种方式在同一个server块内为不同子域名配置不同的favicon.ico:

方法一:使用if指令判断请求域名

直接在/favicon.ico的location块内,通过$host变量判断当前请求的域名,指定对应的图标文件:

server {
    listen 443 ssl;
    server_name abc.domain.com def.domain.com;

    root /var/www/project;

    location /favicon.ico {
        if ($host = abc.domain.com) {
            alias /var/www/project/src/favicon_abc.ico;
        }
        if ($host = def.domain.com) {
            alias /var/www/project/src/favicon_def.ico;
        }
    }
}

这种方式适合域名数量较少的场景,配置直观简单。

方法二:使用map指令(更优雅的扩展方案)

如果后续可能增加更多子域名,推荐在http块内定义map规则,将域名和对应图标路径绑定,再在server块内引用变量:

http {
    # 定义域名到favicon路径的映射
    map $host $favicon_path {
        abc.domain.com /var/www/project/src/favicon_abc.ico;
        def.domain.com /var/www/project/src/favicon_def.ico;
        # 可继续添加更多域名映射
    }

    server {
        listen 443 ssl;
        server_name abc.domain.com def.domain.com;

        root /var/www/project;

        location /favicon.ico {
            alias $favicon_path;
        }
    }
}

map指令是Nginx官方推荐的变量映射方式,相比多个if指令,性能更优且便于维护。

内容的提问来源于stack exchange,提问作者fractal5

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 09:23:12