Nginx では、次のようにすべてのキャッチを設定しています。
server {
listen 80;
server_name *.example.com;
location / {
root /data/sites/www.example.com/widgets/public_html;
index index.php index.html index.htm;
try_files $uri $uri/ /index.php?q=$uri&$args;
}
location ~ .php$ {
root /data/sites/www.examples.com/widgets/public_html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_index index.php;
include fastcgi_params;
}
}
abc.example.com と入力すると、機能します。PHPでは、サブドメインを読み取る必要があります。私は次のようにサブドメインを取得しています:
$url = $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];
$urlSegments = parse_url($url);
$urlHostSegments = explode('.', $urlSegments['host']);
$subdomain = $urlHostSegments[0];
問題は、サブドメインとしてabcを返すのではなく、 *を返すことです。では、PHP と NGINX の場合、キャッチ オールで実際のサブドメインを取得するにはどうすればよいでしょうか?