以前的服务器在Apache上运行,但现在我已经切换到Nginx。 这一切都工作很好,除了我不知道如何将这个Apache线路转换为我的工作nginxconfiguration
SetEnvIf Host "^([^\.]+)\.my-shop\.dev$" MY_ENV=$1
它需要做的是,它需要读取拳头“param / subdomain / something”并设置为环境variables
到目前为止,我试图通过做这样的事情来实现这一点,但它不工作
server { listen 80 ; server_name $\.my-shop\.dev; location ~* \.php$ { try_files $uri $uri/ /index.php?q=&$args; fastcgi_pass unix:/run/php/php7.0-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; fastcgi_param MY_ENV $1; } }
如果您需要任何其他信息,请让我知道,我会提供。 谢谢!
捕捉你的店铺的子领域的主要部分,你可以使用这样的东西:
server { listen 80 ; # match and catch the subdomain part in $prefix for later usage: server_name ~^(?<prefix>.+)\.my-shop\.dev$; location ~* \.php$ { [...] # removed for better readability # add MY_ENV env variable to the value of earlier captured $prefix: fastcgi_param MY_ENV $prefix; } }
在http://nginx.org/en/docs/http/server_names.html#regex_names中有更多的细节和其他用例