我的vhost遵循一个共同的逻辑,我试图在nginx.conf中的“server”指令中尽可能多地定义它,而不是conf.d /目录中的单个domain.conf。 为了实现这一点,我使用的是变量,但它们没有被评估。 这是一个使用$ host变量涉及服务器名称及其别名的示例。 但是在我的php脚本中,变量被报告为其名称,而不是其值:
server {
listen 80;
server_name $host *.$host;
charset utf-8;
access_log /var/log/$host.access.log main;
location / {
root /var/www/$host;
index app.php index.php index.html home.php home.html;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
root /var/www/$host;
fastcgi_index app.php;
include /etc/nginx/fastcgi.conf;
}
location ~ /\. {
deny all;
}
}
输出:
Array
(
[SERVER_NAME] => $host
)
答案 0 :(得分:0)
尝试这样的事情
server {
server_name ~^(www\.)?(?<domain>.+)$;
# ....
}
然后强制域为SERVER_NAME
fastcgi_param SERVER_NAME $domain;
请注意,如果您想将其包含在域名中,则不会包含www
部分
server_name ~^(?<domain>.+)$;