AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 828635
Accepted
Adam Birds
Adam Birds
Asked: 2017-01-26 14:10:22 +0800 CST2017-01-26 14:10:22 +0800 CST 2017-01-26 14:10:22 +0800 CST

如何使用 Nginx 提供 Autodiscover.xml

  • 772

我正在尝试使用 Nginx 提供 Autodiscover.xml 文件:

下面是我的配置:

上游 autodiscoverexamplecoukbackend {
        服务器 unix:/var/run/php-fcgi-autodiscoverexamplecouk.sock;
}

服务器 {
        听 80;
        听 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_name autodiscover.example.co.uk;
        根 /var/www/vhosts/autodiscover.example.co.uk/htdocs;

        索引 index.html;

        错误日志/var/www/vhosts/autodiscover.example.co.uk/error.log;
        access_log /var/www/vhosts/autodiscover.example.co.uk/access.log 结合;

        #location ^~ /autodiscover/ {
                #index 自动发现.php;
                #rewrite ^/.*$ /autodiscover.php 最后;
        #}

        位置 ~* /autodiscover/ {
                最后重写 ^/autodiscover/autodiscover\.xml$ /autodiscover/autodiscover.php;
        }

        位置 = /robots.txt {
                允许全部;
                log_not_found 关闭;
                access_log 关闭;
        }

        位置 ~ \.php$ {
                try_files $uri =404;
                包括/etc/nginx/fastcgi_params;
                fastcgi_pass autodiscoverexamplecoukbackend;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                fastcgi_param PATH_INFO $fastcgi_script_name;
                fastcgi_intercept_errors 开启;
        }
}

问题是它无法在使用大写 A 请求时提供 Autodiscover.xml 文件

如果有人可以提供帮助,那就太好了。

当请求 Autodiscover.xml 时,它应该将其重新发送到 autodiscover.php,它将返回 .autodisocver.xml。它这样做是为了可以服务于不同的域。

该文件位于 /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”
php rewrite xml nginx autodiscover
  • 1 1 个回答
  • 4226 Views

1 个回答

  • Voted
  1. Best Answer
    Tero Kilkanen
    2017-01-26T14:17:34+08:002017-01-26T14:17:34+08:00

    https://autodiscover.example.co.uk/autodiscover/Autodiscover.xml如果您的目标是发送对to的所有请求/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

相关问题

  • 用户特定的 Php.ini 当 php 作为模块运行时?

  • 使 php mail() 函数在 ubuntu-server 上工作的步骤是什么?

  • Web 服务器和数据库服务器位于完全不同的位置

  • PHP 作为 CGI 还是 Apache 模块?

  • 通过 VPN 连接什么是远程服务器 IP?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve