Как обслуживать Autodiscover.xml с помощью Nginx

Я пытаюсь обработать файл Autodiscover.xml с помощью Nginx:

Ниже мой конфиг:

автообнаружение вверх по течению, например, обратная связь {
        серверный unix:/var/run/php-fcgi-autodiscoverexamplecouk.sock;
}

сервер {
        слушай 80;
        слушай 443 песни;

        ssl_certificate /etc/letsencrypt/live/autodiscover.example.co.uk/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/autodiscover.example.co.uk/privkey.pem;

        имя_сервера autodiscover.example.co.uk;
        root /var/www/vhosts/autodiscover.example.co.uk/htdocs;

        index index.html;

        error_log /var/www/vhosts/autodiscover.example.co.uk/error.log;
        access_log /var/www/vhosts/autodiscover.example.co.uk/access.log вместе взятых;

        #location ^ ~ / autodiscover / {
                #index autodiscover.php;
                #rewrite ^ /. * $ /autodiscover.php last;
        #}

        местоположение ~* / автообнаружение / {
                переписать ^ / autodiscover / autodiscover \.xml $ /autodiscover/autodiscover.php last;
        }

        location = /robots.txt {
                позволять все;
                log_not_found off;
                access_log off;
        }

        location ~ \.php $ {
                try_files $ uri = 404;
                include / etc / nginx / fastcgi_params;
                fastcgi_pass autodiscovereamplecoukbackend;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                fastcgi_param PATH_INFO $fastcgi_script_name;
                fastcgi_intercept_errors on;
        }
}

Проблема в том, что он не может обслуживать файл Autodiscover.xml при запросе в верхнем регистре A

Если кто-нибудь может помочь, это было бы здорово.

Когда запрашивается Autodiscover.xml, он должен перезаписать его в autodiscover.php, который вернет файл.autodisocver.xml. Это делает это, чтобы он мог обслуживать разные домены.

Файл находится по адресу /autodiscover/autodiscover.php

Журнал ошибок Nginx:

01.01.25 21:34:12 [ошибка] 29385#29385: *93 open() "/var/www/vhosts/autodiscover.example.co.uk/htdocs/Autodiscover/Autodiscover.xml" не удалось (2: Нет такого файла или каталога), клиент: 13.67.59.89, сервер: autodiscover.example.co.uk, запрос: "POST /Autodiscover/Autodiscover.xml HTTP/1.1", хост: "autodiscover.example.co.uk"
2017/01/25 21:34:13 [ошибка] 29385#29385: *94 open() "/var/www/vhosts/autodiscover.example.co.uk/htdocs/Autodiscover/Autodiscover.xml" не удалось (2: нет такой файл или каталог), клиент: 13.67.59.89, сервер: autodiscover.example.co.uk, запрос: "POST /Autodiscover/Autodiscover.xml HTTP/1.1", хост: "autodiscover.example.co.uk" 2017 / 25.01 21:45:05 [ошибка] 29385#29385: *108 stat() "/var/www/vhosts/autodiscover.example.co.uk/htdocs/Autodiscover/Autodiscover.xml" не удалось (2: нет такого файл или каталог), клиент: 13.67.59.89, сервер: autodiscover.example.co.uk, запрос: "POST /Autodiscover/Autodiscover.xml HTTP/1.1", хост: "autodiscover.example.co.uk"
2017/01/25 21:45:05 [ошибка] 29385#29385: *109 open() "/var/www/vhosts/autodiscover.example.co.uk/htdocs/Autodiscover/Autodiscover.xml" не удалось (2: такой файл или каталог отсутствуют), клиент: 13.67.59.89, сервер: autodiscover.example.co.uk, запрос: "POST /Autodiscover/Autodiscover.xml HTTP/1.1", хост: "autodiscover.example.co.uk"
2017/01/25 21:56:15 [ошибка] 29485#29485: *121 open() "/var/www/vhosts/autodiscover.example.co.uk/htdocs/Autodiscover/Autodiscover.xml" не удалось (2: такой файл или каталог отсутствуют), клиент: 13.67.59.89, сервер: autodiscover.example.co.uk, запрос: "POST /Autodiscover/Autodiscover.xml HTTP/1.1", хост: "autodiscover.example.co.uk"
2017/01/25 21:56:16 [ошибка] 29485#29485: *122 open() "/var/www/vhosts/autodiscover.example.co.uk/htdocs/Autodiscover/Autodiscover.xml" не удалось (2: такой файл или каталог отсутствует), клиент: 13.67.59.89, сервер: автообнаружение.example.co.uk, запрос: "POST /Autodiscover/Autodiscover.xml HTTP/1.1", хост: "autodiscover.example.co.uk" 

1 ответ

Решение

Если ваша цель - отправить все запросы на https://autodiscover.example.co.uk/autodiscover/Autodiscover.xml в /var/www/vhosts/autodiscover.example.co.uk/htdocs/autodiscover/autodiscover.phpВы можете использовать это location блок:

location ~ /(?:a|A)utodiscover/Autodiscover.xml {
    try_files /autodiscover/autodiscover.php =404;
}

Проблема в вашей конфигурации заключается в том, что вы используете строчную версию в rewrite оператор, и, следовательно, нет совпадения, когда приходит запрос с большой буквы.

Другие вопросы по тегам