我正在尝试使用Nginx。 假设我有几个用户和一个子域,每个用户都有一个目录在/home/dev/sites/USER_ID 。 我想USER_ID.dev.example.com指向该目录。
我已经尝试制作一个虚拟主机文件,如下所示:
server { listen 80; server_name ~^(?<site_id>)$.dev.example.com; root /home/dev/sites/$site_id; index index.php; location / { try_files $uri $uri/ /index.php?$uri&$args; } location ~ \.php$ { try_files $uri =404; include /etc/nginx/fastcgi_params; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } }
然而,所有这一切发生的是它显示了我的PhpMyAdmin安装(显然另一个虚拟主机指向它)。 有人能告诉我我做错了什么吗? 我有一种感觉,这只是不好的正则expression式,但我不确定。
这个expression式永远不会匹配,因为$在string中间。 尝试:
server_name ~^(?<site_id>.+)\.dev\.example\.com$;