apache,httaccess:写一条规则,使xxxxx.txt的意思是“返回xxxxx.php的源代码”

我不确定这是可能的,但是我想在.htaccess文件中写一个重写规则(如果需要,还有其他的指令),这样对于那个文件夹中的每一个url,任何以.txt结尾的URL都会被重写以.php结尾的相同名字,但是另外,在这种情况下,php文件不被执行,但是其内容(源代码)被服务。

也就是说,“我的文件夹”是我想要应用的文件夹:

http://www.mydomain.com/myfolder/somescript.php =>像往常一样运行somescript.php http://www.mydomain.com/myfolder/somescript.txt =>将返回somescript.php的源代码没有运行它

有两种方法来完成这一点。

  1. 将每个.php文件符号链接到.txt并在Apache中添加一个指令,如下所示:

     AddType application/x-httpd-php-source .txt 

    <VirtualHost><Location><Directory>块中。

    把它放在一个<Location >中可能是最好的,因为.txt文件不是全局关联的PHP源代码。

  2. 使用重写规则,如:

     RewriteRule ^(/myfolder/.+)\.txt $1.php [H=application/x-httpd-php-source] 

    (来源: http : //httpd.apache.org/docs/2.2/rewrite/flags.html#flag_h – 略有修改)

    使用此选项,确保在.txt目录中不存在其他文件,否则将使用x-httpd-php-source内容types进行发送。 如果是这样的话,你可能需要调整正则expression式。