web-dev-qa-db-ja.com

Nginxを使用してAutodiscover.xmlを提供する方法

Nginxを使用してAutodiscover.xmlファイルを提供しようとしています:

以下は私の設定です:

 upstream autodiscoverexamplecoukbackend {
 server unix:/var/run/php-fcgi-autodiscoverexamplecouk.sock; 
} 
 
 server {
 listen 80; 
 listen 443 ssl; 
 
 ssl_certificate/etc/letsencrypt/live/autodiscover.example.co.uk/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/autodiscover.example.co.uk/privkey.pem;

server_nameautodiscover.example.co.uk; 
 root/var/www/vhosts /autodiscover.example.co.uk/htdocs;

indexindex.html; 
 
 error_log/var/www/vhosts/autodiscover.example.co。 uk/error.log; 
 access_log /var/www/vhosts/autodiscover.example.co.uk/access.log Combined; 
 
#location ^〜/ autodiscover/{ 
#index autodiscover.php; 
#rewrite ^ /。* $ /autodiscover.php last; 
#} 
 
 location〜 * /自動検出/ { 
 rewrite ^/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_passautodiscoverexamplecoukbackend; 
 fastcgi_index index.php; 
 fastcgi_param SCRIPT_FILENAME $ document_root _ fastcgi_script_ 。] fastcgi_param PATH_INFO $ fastcgi_script_name; 
 fastcgi_intercept_errors on; 
} 
} 

問題は、大文字のAで要求されたときに、Autodiscover.xmlファイルを提供できないことです。

誰かが助けることができればそれは素晴らしいことです。

Autodiscover.xmlが要求された場合、.autodisocver.xmlを提供するautodiscover.phpにreweiteする必要があります。これを行うので、さまざまなドメインにサービスを提供できます。

ファイルは/autodiscover/autodiscover.phpにあります

Nginxエラーログ:

 2017/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/01/25 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、サーバー:autodiscover.example.co.uk、リクエスト:" POST /Autodiscover/Autodiscover.xml HTTP/1.1 "、ホスト:" autodiscover。 example.co.uk "
1
Adam Birds

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ステートメントで小文字バージョンを使用しているため、大文字の最初の文字を含む要求が入ったときに一致しないことです。

1
Tero Kilkanen