我可以设置一个PHP文件作为文件扩展名的处理程序吗?

我可以设置一个PHP文件作为文件扩展名的处理程序吗?,php,apache,.htaccess,cgi,Php,Apache,.htaccess,Cgi,假设我有一个扩展名为.quote的文件。我希望web服务器在将该文件发送到浏览器之前,通过一个简单的PHP脚本发送该文件的内容 例如: 这是一个报价 将转变为 这是一个报价 看起来我需要在.htaccess中按照 AddHandler x-quote .quote Action x-quote /cgi/quote.cgi 然后我的剧本会是这样的 #!usr/local/php5 <?php header("Content-type: text/plain"); #I

假设我有一个扩展名为.quote的文件。我希望web服务器在将该文件发送到浏览器之前,通过一个简单的PHP脚本发送该文件的内容

例如:

这是一个报价

将转变为

这是一个报价

看起来我需要在.htaccess中按照

AddHandler x-quote .quote
Action x-quote /cgi/quote.cgi
然后我的剧本会是这样的

#!usr/local/php5
<?php
    header("Content-type: text/plain");

    #I don't know how to do this step...
    echo '"'.$CONTENTS_OF_THE_FILE.'"'; 
?>
但是,现在当我查看服务器上的.quote文件时,我只得到一个错误404。 我能想到一些可能导致这种情况的因素:

未找到和/或执行cgi文件-如何确定是否允许cgi文件在我的服务器上运行?路径是否应该相对于webroot? php可执行文件的路径不正确-是否在php.ini中列出?如果是,在哪里? 我没有在PHP中做正确的事情-我应该做什么
我没有SSH访问问题服务器的权限。

为什么不通过普通的PHP文件而不是CGI运行它并使用mod_rewrite? 你的.htaccess看起来像

RewriteRule ^(.+?).quote$ quote.php?f=$1
您的PHP:

<?php

header("Content-type: text/plain");

$quote = file_get_contents($_GET['f']);
echo '"'.$quote.'"';   

?>

文件\u get\u内容$\u get['f']不会被再次重写吗?当然,在使用之前要清理$\u get变量@Eric,这是在php脚本中完成的。它不会跟随url重写。