【问题标题】:.js.php file extension adds on strange characters at end of file.js.php 文件扩展名在文件末尾添加了奇怪的字符
【发布时间】:2012-07-19 21:54:17
【问题描述】:

我有一个带有 LAMP 堆栈的 Ubuntu 服务器。我有一些中间有 php 的 javascript。

过去一年代码运行良好,但现在在浏览器中查看时出现了一组奇怪的字符:

它似乎与 .js.php 文件扩展名有关。我可以将其简化为:

在记事本++中,它显示实际上有几个额外的字符:

它不是标准的 PHP 开放式括号 <,这可能是有意义的。

在 Google 中寻找“.js.php”或字符毫无结果,所以我完全陷入困境。

【问题讨论】:

  • 下载(在浏览器中查看)example.com/test.php 并查看比较记事本++。还请检查文件大小和字节并发布。 (我怀疑它们都是一样的,但是 text/html 或 text/js 的不同解释使它们看起来不同)
  • 从浏览器下载的 test.php 源代码视图只包含 test 而没有其他内容。 test.php 和 test.js.php 的文件大小都是 5 个字节。如果您将 test.js.php 重命名为 test.xx.php 或 test.js,那么它只会在浏览器源代码视图中显示“test”。
  • @RichardW11 我唯一能想到的是一些 UTF-8 文件末尾的字节对象标记,否则 apache 服务器正在做某事,但我只是猜测
  • 文件内容是包含“test”的一行?空行没有换行符?实际文件,而不是下载的源视图。
  • 尝试在文件Header("content-type: application/x-javascript");的开头添加标题调用

标签: php javascript apache


【解决方案1】:

我也有这个问题。该问题似乎是由于服务器错误地压缩响应引起的。 (当然是 mod_deflate)。

通过 .htaccess 禁用 mod_deflate 为我解决了这个问题 - 请注意,您可以执行以下操作来禁用每个文件类型:

SetEnvIfNoCase Request_URI \.*\.js\.php$ no-gzip dont-vary

奇怪的是,我有两台据称完全相同的 Ubuntu 虚拟机——一台运行完美,一台我需要禁用 mod_deflate。如果有人能弄清楚为什么会这样,我很想知道!

【讨论】:

  • 是的,这是有道理的,我确实打开了 mod_deflate。我今天将对其进行测试并检查它是否解决了问题,然后将其作为接受的答案。我没有对 apache 配置进行任何修改 - 尽管我确实进行了 Plesk 升级,这导致了大部分 Plesk 安装,但这绝对不是 apache 安装中的更改。如果有帮助,它发生在 Ubuntu 10.04 上。
猜你喜欢
  • 1970-01-01
  • 2022-12-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多