Apache-2.2
Apache忽略副檔名並通過fastcgi執行其他文件
我在將 apache 配置為僅
.php
通過 FastCGI 執行具有副檔名的文件時遇到問題。範例 VirtualHost 配置:<VirtualHost 192.168.0.185:80> ServerName host1.example.com DocumentRoot /home/www/host1.example.com/WWW/ SuexecUserGroup host1 www <Directory "/home/www/host1.example.com/WWW/"> AllowOverride All Options +ExecCGI AddHandler fcgid-script .php FcgidWrapper /home/www/host1.example.com/fcgi/php5.fcgi Order allow,deny Allow from all </Directory> </VirtualHost>
問題是,它還將文件
whats.new.in.php.6.html
(基本上每個文件都包含.php
後跟點)作為 fastcgi 執行,而不是將其作為靜態內容。我嘗試將AddHandler更改為AddHandler fcgid-script .php$
沒有運氣 - php 文件沒有被解釋並作為純文字提供。
有沒有辦法防止這種情況?
好的,我設法解決了這個問題。而不是
AddHandler
我使用AddType
處理程序名稱:AddType fcgid-script .php
現在它只適用於
*.php
文件。
一個想法是刪除美元符號。該
AddHandler
選項採用副檔名,而不是正則表達式或 glob。所以正確的行會在你原來的# With or without the leading dot, mod_mime doesn't care AddHandler fcgid-script .php
至於為什麼將 html 文件標記為執行檔,我不知道——可能在某個地方設置了一個標誌,也許是在預設配置中。但是,作為一種解決方法,您可以使用以下命令刪除.html 文件的處理程序,以便將它們視為普通文本/html 文件。
RemoveHandler .html