如何允许人们在不解释代码的情况下下载.php文件


How to allow people to download .php files without the code being interpreted?

我使用的是apache2,并启用了一个在其<Directory>指令中没有index.html文件的网站,因此会显示所有文件的索引,而不是html网页。

我已经包含了一些我想让其他人下载的.php文件,但是每当我从这个页面下载一个.php文件时,它就已经被"解释"了。

例如,如果我将hello.php保存到桌面上

<? php $var = 'hello world'; echo $var ?>

当我打开hello.php时,代码显示

hello

有什么方法可以让人们在代码被解释之前下载它吗?

根据服务器配置,您需要一个带的.htaccess

# for mod_php
php_value engine off

或者:

# for CGI setups
Options -ExecCGI

或者:

# for FastCGI this depends on the name of the handler script
RemoveHandler .php
#RemoveHandler php5-fastcgi .php

有时甚至是一种蛮力方法:

<FilesMatch "[.]php'd?$">
   ForceType text/php
   SetHandler default-handler
</FilesMatch>

这取决于服务器端的行为。例如,如果在Apache中禁用了mod_php,并且MIME类型".php"配置为"application/binary",那么访问"http://[server_ip]/hello.php"将导致php文件下载到客户端。

从apache配置中删除php5模块。

您可能会使用file_get_contents()来显示文件中包含的代码

http://php.net/manual/en/function.file-get-contents.php

您可以尝试为其提供.phps扩展名或.txt扩展名。如果文件的扩展名为.phps,则某些服务器(如果配置为这样做)将允许用户查看该文件的语法突出显示版本。或者,您可以使用.htaccess告诉apache不要将文件作为php执行,并通过告诉它发送application/octet流内容类型来强制下载。

相关文章: