«Файл не найден» при изменении root в config nginx - PullRequest
0 голосов
/ 17 октября 2018

Я хочу настроить автоматическое создание субдомена для моего домена:

example.com -> source in /www/source/
abcd.example.com -> source in /www/source/abcd/

Я использовал эту конфигурацию:

server {
        listen 80; 
            server_name   ~^(.*)\.example\.com$; 
            # If a directory doesn't exist...
            if (!-d /www/source/$1) {
                rewrite . example.com redirect;
            }    
            # Sets the correct root
            root /www/source/$1;
            location ~* \.php$ {
                fastcgi_index   index.php;
                fastcgi_pass    127.0.0.1:9000;
                include         fastcgi_params;
                fastcgi_param   SCRIPT_FILENAME    $document_root$fastcgi_script_name;
                fastcgi_param   SCRIPT_NAME        $fastcgi_script_name;
            }
        }

В /www/source/abcd/, у меня есть index.php.Но это не бег.Когда я перехожу на abcd.example.com, я получаю «Файл не найден».Я заменил index.php на index.html, а затем он работает правильно.

Как это можно исправить?

1 Ответ

0 голосов
/ 17 октября 2018

Использование именованного захвата, поскольку числовые захваты могут выходить за рамки.

Например:

server_name  ~^(?<subdomain>.*)\.example\.com$; 
root /www/source/$subdomain;

Подробнее см. в этом документе .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...