我需要制作一个以文件名为参数的PHP脚本,打开该文件并进行处理(读取和处理非PHP伪指令),然后将结果返回到访问者的浏览器。
示例:
-
网站访问者类型http://domain.ext/somefilename.myextweb服务器打开特定的PHP脚本(例如MyMainScript.PHP),将somefilename.myext的完整路径作为参数。
-
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
这样的东西应该行得通。