簡體   English   中英

AddHandler無法用於.php文件-Apache 2.4

[英]AddHandler not working for .php files - Apache 2.4

我正在為名為helloworld .php和.html文件創建虛擬處理程序。 處理程序包含以下內容:

static int helloworld_handler(request_rec *r){
    ap_rprintf(r, "hello world!");
    return OK;
}

我在apache2.conf中得到了這個:

<Directory /var/www/html>
AddHandler helloworld .php .html
</Directory>

處理程序“ helloworld”適用於.html文件,但不適用於.php文件。 我認為主要是因為默認的php處理程序會覆蓋.php文件的helloworld處理程序。 如何使“ helloworld”處理程序可用於.php文件?

如果需要任何其他信息,請詢問。

您可能想嘗試SetHandler

<FilesMatch \.php$>
    SetHandler helloworld
</FilesMatch>

SetHandler將刪除任何以前設置的處理程序。 要獲得處理程序先運行的選項,然后在處理程序返回DECLINE時運行默認的PHP處理程序,您需要先進行設置,然后添加PHP

<FilesMatch \.html$>
    SetHandler helloworld .html
</FilesMatch>
<FilesMatch \.php$>
    SetHandler helloworld .php
    AddHandler php5-script .php
</FilesMatch>

請注意,這具有清除以前為.html文件設置的所有處理程序的作用。

每個請求只能有一個處理程序處理任何文件類型。 如果您始終希望先運行PHP解釋器,然后再運行處理程序,則可以考慮使用AddOutputFilter指令。

大多數階段都由處理它們的第一個模塊終止。 但是,對於日志記錄,“修復程序”和非訪問身份驗證檢查,所有處理程序始終運行(除非出現錯誤)。

Apache API參考

AddOutputFilter文檔

添加處理程序后,您需要重新啟動Apache服務器。

還檢查擴展名是否實際上將由服務器按照您希望其工作的方式進行解釋。 您可以從托管服務提供商的系統管理員中查看此類信息。 許多系統管理員禁用某些功能以提高安全性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM