【问题标题】:Is there a way to stop server from overwriting your HTML code?有没有办法阻止服务器覆盖您的 HTML 代码?
【发布时间】:2016-07-26 09:53:21
【问题描述】:

我在朋友的专用 Apache 服务器上运行一个网站。但问题是,他也在上面运行电子商务,并设置服务器上的每个页面在检索时都会在head 中添加两个标签,用于服务器自己的指标,这显然与@混淆了987654323@ 声明,应该放在head 的前面。

所以每个页面的头部在服务器处理后看起来是这样的:

<head>
<script></script>
<script></script>
<meta charset="utf-8>
</head>

从 W3 有效性的角度来看,这显然是不好的,而且对于那些在加载之前阻塞页面呈现的脚本而言,这显然是不好的,但他不想改变这种行为。

那么我可以用我的代码做些什么,这样服务器就不能改变头部吗?

【问题讨论】:

  • “这显然与 charset 声明相混淆,应该首先出现。” — 不,应该是within the first 1024 bytes of the document
  • @Quentin 从技术的角度来看,如果你在第一行的头部添加字符集,它是前 1024 位(所以我们都是正确的,只有你在技术上更准确),但是由于这些脚本超过 1024 位,因此编码会被欺骗
  • 字节,而不是比特……这使得它们非常长的脚本。
  • 当然...字符集应该主要由Content-Type HTTP 响应标头表示...如果服务器设置正确,那么整个事情就没有意义了。它归结为以任何一种方式更改服务器配置。

标签: php html apache web


【解决方案1】:

在将 HTML 读入内存和发送给客户端之间,没有办法编写服务器无法修改的 HTML。

用于阻止修改的任何方法将完全取决于进行修改的软件的工作方式。

如果它是通过 Apache 配置指令应用的,那么您可以使用带有 &lt;Location&gt;&lt;Directory&gt; 或其他仅将其范围限定为您的文件的块的其他指令将其关闭。

如果文件有某种方法可以将自己从指标中排除(例如另一个 &lt;meta&gt; 指令,那么您可以使用它。

【讨论】:

  • 因此,如果我正确理解您的建议,我应该实现我自己的 .htaccess 指令,这应该是第二个覆盖代码的指令,因为直接来自 Apache 配置的指令首先执行,然后才是 htaccess 一个,从而消除了来自先前指令的所有指令。基本上要求apache再次读取文件并为我重写。这可能有效,但会增加加载时间的开销
  • @TheLaw Apache 无论如何都会因为 htaccess 而产生开销。但根据 vhost 配置,可能会阻止指令。你不能要求他把他的指标移到头尾(&lt;/head&gt; 之前)吗?这应该对你有用。
猜你喜欢
  • 2011-07-07
  • 1970-01-01
  • 2021-10-25
  • 2013-06-23
  • 1970-01-01
  • 2021-07-25
  • 2016-12-12
  • 2020-12-02
  • 1970-01-01
相关资源
最近更新 更多