具有不同文件扩展名的 PHP 的 AddHandler

具有不同文件扩展名的 PHP 的 AddHandler

我正在尝试通过 配置托管的 Apache 服务器,.htaccess以执行.asp带有 PHP 扩展名的文件。但我不知道正确handler-nameAddHandler是什么。

原因是我们有一个 Flash 应用正在通过 GET 请求.asp文件。我们将使用 PHP 重写这些.asp文件,但我们可以不是更改 flash 应用程序(我们甚至没有源代码)。

我曾尝试使用AddHandlerAddType指令。

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

答案1

一个解决方法/替代方案是简单地重写.asp请求.php并将文件存储为普通.php文件 - 假设.php文件正确提供。使用 mod_rewrite 您可以在根文件中执行如下操作.htaccess

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

这个会内部重写请求/path/to/something.asp/path/to/something.php

相关内容