Linux

讓 nginx 在載入確切位置時執行特定的 PHP 文件

  • October 6, 2020

我剛剛實現了通過和腳本的Autodiscover功能。雖然設置工作起來很有魅力,但我想對 nginx 伺服器塊做一些改進,但我沒有成功。MS Outlook Clients``Nginx``PHP

目前的 nginx 伺服器塊如下所示,正如您所見,當/autodiscover/autodiscover.xml載入位置時,客戶端被重定向到/autodiscover/autodiscover.php,然後 nginx 執行 PHP 腳本並將結果返回給客戶端。

       location = /autodiscover/autodiscover.xml
       {
           rewrite .* /autodiscover/autodiscover.php redirect;
       }

       location ~ \.php$ {
         fastcgi_pass          php-fpm73;
         fastcgi_split_path_info ^(.+\.php)(/.*)$;
         include               /etc/nginx/fastcgi_params;
         fastcgi_param         SCRIPT_FILENAME    $document_root$fastcgi_script_name;
         fastcgi_param         HTTPS              on;
      }

我想修改 nginx 伺服器塊,以便在/autodiscover/autodiscover.xml請求時/autodiscover/autodiscover.php執行 PHP 腳本,然後將結果返回給客戶端而不進行重定向,因此客戶端的 URL 保持不變,/autodiscover/autodiscover.xml.

希望可以有人幫幫我。

提前致謝,

只需使用

rewrite .* /autodiscover/autodiscover.php last;

反而。該last標誌將強制 nginx 中斷目前位置處理並根據重寫的 URI 搜尋新的位置處理。

您可以在此處查看完整的rewrite指令語法。

引用自:https://serverfault.com/questions/1036646