什么.htaccess与行AddHandler php5脚本.php做什么?

时间:2011-10-22 01:25:53

标签: php apache .htaccess

我是新的网络托管服务商。我创建的每个域的public_html文件夹是使用.htaccess自动生成的,其中包含以下行:

AddHandler php5-script .php

这是为了什么?

3 个答案:

答案 0 :(得分:23)

这只是指示PHP通过将文件传递给PHP5解释器来处理以.php结尾的文件。如果没有这种配置,Web服务器可以将文件作为原始PHP代码提供给最终用户的Web浏览器,而不是执行代码。这会增加暴露数据库登录凭据或其他秘密的危险可能性。

使用相同的机制,您可以将Web服务器配置为使用除.php之外的其他扩展名解析文件作为PHP脚本,并将它们交给PHP解释器。例如,偶尔通过用.html扩展名命名来掩盖PHP脚本。

# Interpret both .php & .html as PHP:
AddHandler php5-script .php .html

答案 1 :(得分:1)

它告诉php在文件名中使用.php处理任何文件即使它不在最后。名为smile.php.gif的文件将作为php文件进行交互,如果您要使用上传脚本,则该文件很糟糕。这是因为Apache允许以任何顺序进行多个扩展,因此gif.php.jpg与gif.jpg.php相同。我听说选择处理程序的最佳方法是使用FilesMatch。当然,如果您的Web主机在他们的httpd.conf中有这个,那么在使用FilesMatch之前,如果您无权访问httpd.conf,则必须使用htaccess“删除”它。

答案 2 :(得分:0)

答案是htaccess告诉Web服务器将php作为php5-script处理并执行。

关于第一个答案,您将实现目标,但这是一个非常糟糕的做法,由于存在巨大的安全隐患,您不应允许将html文件作为php执行。