我正在尝试通过 配置托管的 Apache 服务器,.htaccess
以执行.asp
带有 PHP 扩展名的文件。但我不知道正确handler-name
的AddHandler
是什么。
原因是我们有一个 Flash 应用正在通过 GET 请求.asp
文件。我们将使用 PHP 重写这些.asp
文件,但我们可以不是更改 flash 应用程序(我们甚至没有源代码)。
我曾尝试使用AddHandler
和AddType
指令。
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-Type
HTTP 标头)。
现在,我完全理解了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-name
的AddHandler
是什么?
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