Nginx抱怨我配置的以下部分:
nginx: [emerg] unknown directive "if($domain" in /etc/nginx/nginx.conf:38
nginx: configuration file /etc/nginx/nginx.conf test failed
Run Code Online (Sandbox Code Playgroud)
这是它正在谈论的一点:
server_name ~^(?:(?<subdomain>\w*)\.)?(?<domain>\w+)\.(?<tld>(?:\w+\.?)+)$;
if($domain = "co") {
set $domain "${subdomain}";
set $subdomain "www";
set $tld "co.${tld}";
}
if ($subdomain = "") {
set $subdomain "www";
}
root /var/www/sites/$domain.$tld/$subdomain;
location / {
index index.php index.html index.htm;
}
Run Code Online (Sandbox Code Playgroud)
这是我的配置文件的完整服务器部分:
server {
listen 80;
server_name ~^(?:(?<subdomain>\w*)\.)?(?<domain>\w+)\.(?<tld>(?:\w+\.?)+)$;
if($domain = "co") {
set $domain "${subdomain}";
set $subdomain "www";
set $tld "co.${tld}";
}
if ($subdomain = "") {
set $subdomain "www";
}
root /var/www/sites/$domain.$tld/$subdomain;
location / {
index index.php index.html index.htm;
}
}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
Run Code Online (Sandbox Code Playgroud)
有什么问题?
小智 68
希望你现在已经解决了这个问题,但对于那些正在努力解决类似问题的人来说.您需要在if语句和左括号之间包含一个空格.
因此,在您的示例中,您需要更改该行
if($domain = "co") {
Run Code Online (Sandbox Code Playgroud)
至
if ($domain = "co") {
Run Code Online (Sandbox Code Playgroud)
一切都应该工作正常.
| 归档时间: |
|
| 查看次数: |
9368 次 |
| 最近记录: |