是否可以通过直接调用文件URL来使用PHP脚本处理非PHP文件


Is it possible to use PHP script for processing a non-PHP file by calling the file URL directly?

我需要制作一个以文件名为参数的PHP脚本,打开该文件并进行处理(读取和处理非PHP伪指令),然后将结果返回到访问者的浏览器。

示例:

  1. 网站访问者类型http://domain.ext/somefilename.myextweb服务器打开特定的PHP脚本(例如MyMainScript.PHP),将somefilename.myext的完整路径作为参数。

  2. MyMainScript.php打开文件somefilename.myext,读取其中的任何内容,对其进行处理,并将输出发送回访问者的浏览器

因此,我的问题是如何配置web服务器(IIS或Apache)以映射文件扩展名为"myext"(*.myext)的文件来执行脚本"MyMainScript.php"

使用其他方式调用它,例如:

/MyMainScript.php/somefilename.myext

/MyMainScript.php?file=somefilename.myext

不是的选项

在网站根目录下创建一个.htaccess文件。如果你正在运行Apache2@Ubuntu/Debian,请使用以下指令:

AddType application/x-httpd-php .myext

如果你以CGI的形式运行PHP,你应该改为这样写:

AddHandler application/x-httpd-php .myext

这将把特定的扩展处理为PHP文件,并将它们作为PHP执行。

另一个解决方案可能是RewriteRule,因此您可以指定需要执行哪个文件,对于Apache,您的.htaccess文件应该是这样的:

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^somefilename.myext$ ./MyMainScript.php?file=somefilename.myext
# or just for any file ending with .myext
RewriteRule ^(.*).myext$ ./MyMainScript.php?file=$1.myext

这样的东西应该行得通。