Linux

具有不同文件副檔名的 PHP 的 AddHandler

  • October 4, 2016

我正在嘗試通過 配置託管的 Apache 伺服器.htaccess來執行.asp帶有 PHP 副檔名的文件。但我不知道正確handler-nameAddHandler是什麼。

原因是我們有一個 GET 請求.asp文件的 flash 應用程序。我們將用 PHP 重新編寫.asp文件,但我們無法更改 flash 應用程序(我們甚至沒有原始碼)。

我嘗試使用AddHandlerandAddType指令。

AddHandler php-fcgid .php .asp
AddType application/x-httpd-php .asp
AddHandler application/x-httpd-php7 .asp

我嘗試過的指令範例無濟於事

大多數給出*沒有指定的輸入文件。*或將 mime-type 設置application/x-httpd-php.php文件(技術上設置Content-TypeHTTP 標頭)。

現在,我完全理解AddHandler並且AddType- 我發現的最佳資源是https://www.webmasterworld.com/apache/4557229.htm#msg4557505

主機具有看起來像用於管理伺服器的自定義儀表板。我可以將 PHP 版本從 5.4 更改為 7.0 並更改php.ini.

我上傳了一個phpinfo();,我認為相關的一些值在下面發布。Apache 版本未知,因為它只是報告Server: Apache。但我確信它至少是 Apache2,因為Apache 2.0 處理程序列在 SAPI 模組下。

我怎樣才能弄清楚正確handler-nameAddHandler是什麼?

PHP 版本 7.0.9

Server API  CGI/FastCGI
Configuration File (php.ini) Path   /compile/php70/dest/lib
Loaded Configuration File   /etc/custom_php_config/slavespillet.dk/php.ini
Scan this dir for additional .ini files     (none)
Additional .ini files parsed    (none)
PHP API     20151012

cgi-fcgi

Directive   Local Value Master Value
cgi.check_shebang_line  1   1
cgi.discard_path    0   0
cgi.fix_pathinfo    1   1
cgi.force_redirect  1   1
cgi.nph 0   0
cgi.redirect_status_env no value    no value
cgi.rfc2616_headers 0   0
fastcgi.logging 1   1

PHP Version     7.0.9
$_SERVER['SERVER_SOFTWARE'] Apache

一種解決方法/替代方法是簡單地將.asp請求重寫為普通文件.php並將文件儲存為普通.php文件 - 假設.php文件正確提供。使用 mod_rewrite 您可以在根.htaccess文件中執行以下操作:

RewriteEngine On
RewriteRule ^(.+)\.asp$ $1.php [L]

這將在內部重寫/path/to/something.asp對to的請求/path/to/something.php

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