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

时间:2012-01-08 19:07:34

标签: 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 don't know how to do this step...
    echo '"'.$CONTENTS_OF_THE_FILE.'"'; 
?>

但是,现在我在查看服务器上的.quote文件时遇到错误404。 我可以想到一些可能导致这种情况的事情:

  1. 未找到和/或执行cgi文件 - 如何确定是否允许在我的服务器上运行cgi文件?路径应该相对于webroot吗?
  2. php可执行文件的路径不正确 - 这是否列在php.ini中的某个位置?如果是这样,在哪里?
  3. 我在PHP本身没有做正确的事 - 我应该做什么
  4. 我没有对相关服务器的SSH访问权限。

1 个答案:

答案 0 :(得分:0)

为什么不通过普通的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.'"';   

?>