如何在使用Apache + PHP-FPM时允许用户覆盖X-Frame-Options?

我有一个运行Apache + PHP-FPM + FastCGI的Ubuntu 14.04服务器,为用户主页提供服务。 为了安全起见,我在Apache的configuration中启用了:

Header set X-Content-Type-Options: "nosniff" Header set X-Frame-Options: "sameorigin" Header set X-XSS-Protection: "1; mode=block" 

AllowOverride FileInfo已设置,因此用户可以在.htaccess文件中使用Header指令进行更多控制(如果需要的话)。 然而,似乎Apache没有兑现当CGI使用PHP( mod_headers没有发送标题时,文件是PHP ),即使Header always.htaccess Header命令被忽略的PHP文件。

我的下一个想法是让用户修改他们的PHP代码来使用PHP header函数 ,以便他们可以将其设置为X,我可以使用setifempty应用这只有当用户没有。 经过一番尝试,我发现这些条目工作:

 Header set X-Frame-Options: "sameorigin" env=!SCRIPT_NAME Header always setifempty X-Frame-Options: "sameorigin" env=SCRIPT_NAME 

没有envtesting,我发现第一个命令(即使是setifemptymerge )会添加一个头文件,以便在头文件中看到两个X-Frame-Options

那么,这是正确的方式呢? 如果env=SCRIPT_NAMEtesting足够了,还是有更好的testing来确定请求是否将由PHP-FPM / FastCGI或Apache本身处理?