在Nginx中使用变量
我的vhost遵循一个通用逻辑,我正试图在nginx.conf中的“server”指令中尽可能多地定义它,而不是conf.d/目录中的单个domain.conf。 为了实现这一点,我使用了变量,但它们没有被求值。 下面是一个使用$host变量的服务器名称及其别名的示例。 但在我的php脚本中,变量是作为名称报告的,而不是作为值报告的:在Nginx中使用变量,nginx,Nginx,我的vhost遵循一个通用逻辑,我正试图在nginx.conf中的“server”指令中尽可能多地定义它,而不是conf.d/目录中的单个domain.conf。 为了实现这一点,我使用了变量,但它们没有被求值。 下面是一个使用$host变量的服务器名称及其别名的示例。 但在我的php脚本中,变量是作为名称报告的,而不是作为值报告的: server { listen 80; server_name $host *.$host; cha
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
)
试试这样的
server {
server_name ~^(www\.)?(?<domain>.+)$;
# ....
}
请记住,如果您想将www
部分包含在域名中,则该部分不包括在内
server_name ~^(?<domain>.+)$;
server_name~ ^(?.+)$;
然后再次使用相同的regexp来定义根?:(不,变成了[SERVER\u NAME]=>~^(www\)(?。+)$有点奇怪,你的nginx版本是什么
server_name ~^(?<domain>.+)$;