Azure网站 - 从PHP中删除X-Powered-By标头

时间:2014-07-30 15:01:09

标签: php azure http-headers

我想删除PHP在Azure网站中公开的 X-Powerd-By 标头。

我已经删除了在 web.config 文件中公开软件版本的所有标题。

<httpProtocol>
    <customHeaders>
        <remove name="X-Powered-By" />
    </customHeaders>
</httpProtocol>

但是有两个。

来自ASP.Net的那个消失了。但第二个只能在 php.ini 中用

关闭
expose_php = off

我无法覆盖 .user.ini 中的值,因为它只能在无法访问的 php.ini 中更改。

这只能通过为Azure网站提供我自己的PHP版本来完成吗?因为我可以更改 php.ini 文件吗?

3 个答案:

答案 0 :(得分:3)

当我尝试从WordPress网站中删除此标题时,此处接受的答案对我没有用,但是以下网址重写规则通过消隐标题的值为我完成了大部分工作,而不是完全删除它。

<configuration>
  <system.webServer>
    <rewrite>
      <outboundRules rewriteBeforeCache="true">
        <rule name="Remove X-Powered-By HTTP response header">
          <match serverVariable="RESPONSE_X-Powered-By" pattern=".+" />
          <action type="Rewrite" value="" />
        </rule>
      </outboundRules>
    </rewrite>
  <system.webServer/>
</configuration>

答案 1 :(得分:2)

据我所知(我已经尝试了几次),没有办法通过配置来做到这一点。但是,您可以通过编程方式执行此操作。不是理想的解决方案,但它确实有效。把它放在页面文件的顶部。

<?php header_remove("X-Powered-By"); ?>

注意:这将是您现有的web.config设置的补充,该设置会删除ASP.NET的X-Powered-By标头。

答案 2 :(得分:0)

如果您使用的是Azure Linux Web服务,请将其添加到.htacess

php_value expose_php off