如何让人们下载.php文件而不解释代码?

时间:2012-01-16 03:21:54

标签: php apache

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

我已经包含了一些我希望允许其他人下载的.php文件,但每当我从此页面下载.php文件时,它都已被“解释”。

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

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

当我打开hello.php时,代码读取

hello

有没有办法让人们在解释之前下载代码?

5 个答案:

答案 0 :(得分:3)

根据服务器配置,您需要.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>

答案 1 :(得分:1)

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

答案 2 :(得分:0)

从apache配置中删除php5模块。

答案 3 :(得分:0)

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

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

答案 4 :(得分:0)

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