我有一个如下的 URL,www.example.com/fr_FR
curl 返回类型如下:
HTTP/1.1 200 OK
Date: Mon, 16 Oct 2017 10:35:19 GMT
Server: Apache
Set-Cookie: PHPSESSID=img4385scm6ldm6vngtntsrou1; path=/; HttpOnly
Cache-Control: no-cache
Set-Cookie: FirstVisit=1; expires=Wed, 18-Oct-2017 10:35:20 GMT; Max-Age=172800; path=/; httponly
Cache-Control: no-cache
Content-Type: text/html; charset=UTF-8
My.htaccess
包含以下指令:
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/x-javascript application/javascript application/rss+xml application/xml application/xhtml+xml application/x-font-ttf application/x-font-opentype image/svg+xml
</IfModule>
问题是特定的 URL 没有被 gzip 压缩,但是,如果我访问一个.html
文件或者直接在我的 apache vhost 中添加文件,AddOutputFilterByType DEFLATE text/html
gzip 就可以工作:
Content-Encoding: gzip
有关我的 vhost 的信息AllowOverride
设置为All
。
这个 URL 有什么问题/fr_FR
,为什么虽然是,但是却没有被 gzipContent-Type
压缩text/html
?
更新1:
供参考我的网站是一个 symfony2 网站
答案1
Apache 文档(http://httpd.apache.org/docs/2.2/mod/core.html#addoutputfilterbytype) 表明 AddOutputFilterByType 在某些情况下可能会部分或完全失败。此外,此指令在 apache 2.1 及更高版本中已弃用。既然您说 .html 有效,您可以尝试:
AddType text/html .html