我需要创建一个PHP脚本,它将文件名作为参数,打开该文件并对其进行处理(读取和处理非PHP伪指令)并将结果返回给访问者的浏览器。
示例:
网站访问者类型http://domain.ext/somefilename.myext和Web服务器打开特定的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
不是一个选项
答案 0 :(得分:0)
在您网站的根目录下创建.htaccess文件。如果您正在运行Apache2 @ Ubuntu / Debian,请使用此指令:
AddType application/x-httpd-php .myext
如果您将PHP作为CGI运行,则应该改为编写:
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
这样的事情应该有效。