我是新的网络托管服务商。我创建的每个域的public_html文件夹是使用.htaccess自动生成的,其中包含以下行:
AddHandler php5-script .php
这是为了什么?
答案 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
执行。