【问题标题】:Nginx server_name regexp not working as variableNginx server_name 正则表达式不能作为变量工作
【发布时间】:2013-03-12 19:05:35
【问题描述】:

有人告诉我为什么我仍然会出现这样的错误吗?

Restarting nginx: [emerg]: unknown "domain_name" variable
configuration file /etc/nginx/nginx.conf test failed

变量所在的部分代码如下:

server {
    # if you're running multiple servers, instead of "default" you should
    # put your main domain name here
    listen 80 default;

    # you could put a list of other domain names this application answers
    server_name ^~(?<domain_name>[^\.]*)\.(?<tld>[^\.]*)$;

    # root defined by domain
    root /home/deployer/apps/$domain_name/current/;

    # access && error && rewrite log
    access_log /var/log/nginx/access.log;
    error_log /var/log/nginx/error.log;
    rewrite_log on;

    # default location
    location / {

...

【问题讨论】:

    标签: regex http configuration nginx


    【解决方案1】:

    删除“^”。来自

    server_name ^~(?<domain_name>[^\.]*)\.(?<tld>[^\.]*)$;
    

    server_name ~(?<domain_name>[^\.]*)\.(?<tld>[^\.]*)$;
    

    或者切换“^”和“~”。字母“~”必须是第一个。

    server_name ~^(?<domain_name>[^\.]*)\.(?<tld>[^\.]*)$;
    

    【讨论】:

      猜你喜欢
      • 2016-04-28
      • 1970-01-01
      • 1970-01-01
      • 2018-04-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-16
      • 1970-01-01
      • 2016-10-21
      相关资源
      最近更新 更多