当前位置: 首页 > 知识库问答 >
问题:

激活Cloudflare时出现字符编码问题

司马英才
2023-03-14

当我激活cloudflare时,我们会遇到编码或缓存问题,页面上会出现特殊字符。

cloudflare停用时的标头响应:

Alt-Svc: quic=":443"; ma=2592000; v="35,39,43,44"
Cache-Control: no-cache, must-revalidate
Connection: close
Content-Encoding: gzip
Content-Length: 8156
Content-Type: text/html; charset=UTF-8
Date: Wed, 14 Aug 2019 14:19:31 GMT
Expires: Mon, 26 Jul 1997 05:00:00 GMT
Last-Modified: Wed, 14 Aug 2019 14:19:31 GMT
Pragma: no-cache
Server: LiteSpeed
Set-Cookie: pmd_template=deleted; expires=Thu, 01-Jan-1970 00:00:01 GMT; Max-Age=0; path=/New/; domain=www.eastlondonbusinessdirectory.co.za
Set-Cookie: pmd_template=listimia; expires=Fri, 13-Sep-2019 14:19:31 GMT; Max-Age=2592000; path=/New/; domain=www.eastlondonbusinessdirectory.co.za
Vary: Accept-Encoding,User-Agent
X-Powered-By: PHP/7.0.33

cloudflare激活时的标头响应:

Cache-Control: no-cache, must-revalidate
CF-RAY: 50639e64dd188074-CPT
Connection: keep-alive
Content-Encoding: zlib,gzip,deflate
Content-Type: text/html; charset=UTF-8
Date: Wed, 14 Aug 2019 14:29:03 GMT
Expect-CT: max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
Expires: Mon, 26 Jul 1997 05:00:00 GMT
Last-Modified: Wed, 14 Aug 2019 14:29:02 GMT
Pragma: no-cache
Server: cloudflare
Set-Cookie: pmd_template=deleted; expires=Thu, 01-Jan-1970 00:00:01 GMT; Max-Age=0; path=/New/; domain=www.eastlondonbusinessdirectory.co.za
Set-Cookie: pmd_template=listimia; expires=Fri, 13-Sep-2019 14:29:02 GMT; Max-Age=2592000; path=/New/; domain=www.eastlondonbusinessdirectory.co.za
Transfer-Encoding: chunked
Vary: User-Agent
X-Powered-By: PHP/7.0.33
X-Turbo-Charged-By: LiteSpeed

我相信我可能需要确保我的源服务器发送一个标头,告诉缓存根据内容编码为页面提供服务,但我不太确定这个逻辑是否正确,因为激活Cloudflare后,我只看到Vary:User Agent?这实际上被Cloudflare忽略了。。。如果逻辑是正确的,那么我不太确定如何着手解决这个问题。我尝试从Cloudflare添加页面规则来缓存所有内容,并在中添加了以下内容。htaccess

 </IfModule>
AddDefaultCharset UTF-8
<IfModule mod_headers.c>
  <FilesMatch ".(js|css|xml|gz|html)$">
    Header append Vary: Accept-Encoding
  </FilesMatch>
</IfModule>

但两者都不起作用。

我们将非常感谢任何帮助来解决这个问题,并将接受答案

请帮忙。非常感谢。

共有1个答案

阳枫涟
2023-03-14

Cloudflare目前只支持Accept-Encoding-Varie头。

如果你想根据其他因素有所不同,你可以考虑:

  • 为企业计划设置自定义缓存
  • 完全使用页面规则绕过缓存
  • 从不同的URL提供不同的内容类型,以继续利用缓存
  • 使用Cloudflare工作者的解决方法
 类似资料:
  • 这在这里被问了无数次,但我找不到适合我的问题的解决方案。我正在尝试在Windows 10上安装张量流-GPU,阿纳康达。我下载了库达(版本 10.2)和库德尼,我已将文件从库德纳库移动到库达文件夹,并将以下变量添加到 PATH 中: 在anaconda中运行以下代码后,我得到以下响应:

  • 问题内容: 我有一个程序,允许用户在富文本框中键入Java代码,然后使用Java编译器对其进行编译。每当我尝试编译自己编写的代码时,都会收到一条错误消息,提示我在我的代码开头没有一个非法字符。这是编译器给我的错误: 问题答案: 当您不指定编码时,BOM由File.WriteAllText()或StreamWriter生成。默认值为使用UTF8编码并生成BOM。您可以使用- encoding命令行选

  • 我在Windows中的Git Bash终端可以与所有其他git bash命令一起工作,但是对于使用Git Bash为环境激活conda,输出都是胡言乱语。我找不到其他面临这个问题的人。为了回来,我必须杀死并启动一个新终端。这是Minicon da的新安装,我在以前的安装和不同的环境中也遇到了同样的问题。它可以与Native Anaconda Prompt一起工作,但是我喜欢在我的工作流程中使用Gi

  • 问题内容: 我目前正在使用ReactJS和webpack构建一个网站。 我的文本编辑器设置为编码,并且使用带重音或特殊字符的字符,例如。 在我的html页面中,我相信我使用的配置正确: 但是特殊字符的渲染方式不正确: 例如,而不是。 我尝试设置,但没有任何改变。 我觉得webpack正在使用编码构建,这使我的角色停滞不前。我该如何解决这个问题? 问题答案: 我没有找到一种使Webpack读取UTF

  • 我们都知道计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理。最早的计算机在设计时采用8个比特(bit)作为一个字节(byte),所以,一个字节能表示的最大的整数就是255(二进制11111111=十进制255),0 - 255被用来表示大小写英文字母、数字和一些符号,这个编码表被称为ASCII编码,比如大写字母 A 的编码是 65,小写字母 z 的编码是 122。 如果要表示中

  • 我有一个导出CSV文件的PHP脚本。我的用户然后在Excel中编辑文件,保存它,并重新上传它。 如果他们在字段中键入欧元符号,则在上载文件时,欧元符号以及之后的所有内容都将丢失。我正在使用str_getcsv函数。 如果我尝试转换编码(比如UTF-8),欧元符号就会消失,我会得到一个缺少的字符标记(通常由一个空白的正方形或菱形中的问号表示)。 如何将编码转换为UTF-8,同时保留欧元符号(和其他非