如何使的1and1共享主机WordPress站点的gzip工作(How to make gzip w

2019-06-26 04:55发布

YSlow的是告诉我,我的CSS要压缩,但几个小时摆弄之后,我不能为我的生命得到gzip来为我的网站工作。 在这一点上,我甚至不知道,如果业绩增长(会不会有一个?)将是值得的。

我在1&1运行一个WordPress站点共享的主机帐户。

老实说,我真的不知道我这个东西干什么,似乎并不能得到一个适当的设置。 我在一些地方,与1&1,“模块Apache的mod_deflate模块和mod_gzip的没有安装。”看过,所以我想这是问题的一部分。

我曾尝试下面的代码:

这其中似乎并没有做任何事情:

<IfModule mod_gzip.c>  
    mod_gzip_on         Yes  
    mod_gzip_dechunk    Yes  
    mod_gzip_item_include file          \.(html?|txt|css|js|php|pl)$  
    mod_gzip_item_include handler       ^cgi-script$  
    mod_gzip_item_include mime      ^text\.*  
    mod_gzip_item_include mime      ^application/x-javascript.*  
    mod_gzip_item_exclude mime      ^image\.*  
    mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*  
</IfModule>  

这将导致500错误

<Location />
# Insert filter
SetOutputFilter DEFLATE

# Netscape 4.x has some problems...
BrowserMatch ^Mozilla/4 gzip-only-text/html

# Netscape 4.06-4.08 have some more problems
BrowserMatch ^Mozilla/4\.0[678] no-gzip

# MSIE masquerades as Netscape, but it is fine
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
# Don't compress images
SetEnvIfNoCase Request_URI \
\.(?:gif|jpe?g|png)$ no-gzip dont-vary

# Make sure proxies don't deliver the wrong content
Header append Vary User-Agent env=!dont-vary
</Location>

这(从HTML5样板)似乎没有任何做任何事情:

<IfModule mod_deflate.c>

  # Force deflate for mangled headers developer.yahoo.com/blogs/ydn/posts/2010/12/pushing-beyond-gzipping/
  <IfModule mod_setenvif.c>
    <IfModule mod_headers.c>
      SetEnvIfNoCase ^(Accept-EncodXng|X-cept-Encoding|X{15}|~{15}|-{15})$ ^((gzip|deflate)\s*,?\s*)+|[X~-]{4,13}$ HAVE_Accept-Encoding
      RequestHeader append Accept-Encoding "gzip,deflate" env=HAVE_Accept-Encoding
    </IfModule>
  </IfModule>

  # HTML, TXT, CSS, JavaScript, JSON, XML, HTC:
  <IfModule filter_module>
    FilterDeclare   COMPRESS
    FilterProvider  COMPRESS  DEFLATE resp=Content-Type $text/html
    FilterProvider  COMPRESS  DEFLATE resp=Content-Type $text/css
    FilterProvider  COMPRESS  DEFLATE resp=Content-Type $text/plain
    FilterProvider  COMPRESS  DEFLATE resp=Content-Type $text/xml
    FilterProvider  COMPRESS  DEFLATE resp=Content-Type $text/x-component
    FilterProvider  COMPRESS  DEFLATE resp=Content-Type $application/javascript
    FilterProvider  COMPRESS  DEFLATE resp=Content-Type $application/json
    FilterProvider  COMPRESS  DEFLATE resp=Content-Type $application/xml
    FilterProvider  COMPRESS  DEFLATE resp=Content-Type $application/xhtml+xml
    FilterProvider  COMPRESS  DEFLATE resp=Content-Type $application/rss+xml
    FilterProvider  COMPRESS  DEFLATE resp=Content-Type $application/atom+xml
    FilterProvider  COMPRESS  DEFLATE resp=Content-Type $application/vnd.ms-fontobject
    FilterProvider  COMPRESS  DEFLATE resp=Content-Type $image/svg+xml
    FilterProvider  COMPRESS  DEFLATE resp=Content-Type $image/x-icon
    FilterProvider  COMPRESS  DEFLATE resp=Content-Type $application/x-font-ttf
    FilterProvider  COMPRESS  DEFLATE resp=Content-Type $font/opentype
    FilterChain     COMPRESS
    FilterProtocol  COMPRESS  DEFLATE change=yes;byteranges=no
  </IfModule>


  <IfModule !mod_filter.c>
    # Legacy versions of Apache
    AddOutputFilterByType DEFLATE text/html text/plain text/css application/json
    AddOutputFilterByType DEFLATE application/javascript
    AddOutputFilterByType DEFLATE text/xml application/xml text/x-component
    AddOutputFilterByType DEFLATE application/xhtml+xml application/rss+xml application/atom+xml
    AddOutputFilterByType DEFLATE image/x-icon image/svg+xml application/vnd.ms-fontobject application/x-font-ttf font/opentype
  </IfModule>

</IfModule>

这一次似乎没有做任何事情...

AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/x-javascript

我跟着在这里找到教程

(http://mrrena.blogspot.com/2009/01/how-to-compress-php-and-other-text.html) 

但这基本上完全打破了我的网站的外观。


在我的functions.php试过这个,好像压缩我的HTML,但留下一些JS和CSS未压缩

if(extension_loaded("zlib") && (ini_get("output_handler") != "ob_gzhandler"))
    add_action('wp', create_function('', '@ob_end_clean();@ini_set("zlib.output_compression", 1);'));

Answer 1:

因此,一段时间后,我想通了,如何压缩HTML,CSS和具有1&1虚拟主机包js文件。 不支持减缩!

对于动态内容添加的php.ini到您的网站的根目录。 php.ini中的内容:

zlib.output_compression =1
zlib.output_compression_level =9

当然你也可以选择其他压缩级别,9是最高的(并导致服务器最高负荷)。 这将压缩您的动态生成HTML文件。

要压缩静态文件(CSS,JS和图片......),你需要修改.htaccess文件。 对于追加

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
RewriteOptions Inherit
ReWriteCond %{HTTP:accept-encoding} (gzip.*) 
ReWriteCond %{REQUEST_FILENAME} !.+\.gz$ 
RewriteCond %{REQUEST_FILENAME}.gz -f 
RewriteRule (.+) $1.gz [QSA,L] 
</IfModule>

你的.htaccess文件(你会发现在你的网站的根目录中的文件 - 其他人创建它)。 但是,压缩不会自动完成。 所以,你必须压缩在自己的文件! 使用如7-ZIP和压缩JS和CSS文件以.gz - >结果应该是如stylesheet.css.gz。 然后将文件上传到为文件你刚才压缩的目录中。

现在,它应该工作!

PS:特别是当该文件是非常小的压缩并不总是有用的。 因此,检查压缩前后的差异。



Answer 2:

它看起来像你对我已经用尽你的选择。 综观上述好像主机确实没有mod_deflate模块或mod_gzip的。 所以我想你只是出于运气。

PHP的解决方案确实是只为HTML。 因此,只要坚持一个。 HTML是还添加压缩的最佳场所,因为,大多数时间,CSS和JS只在第一页上下载。

您可以将请求重定向到CSS和JS虽然PHP脚本,并使用PHP来压缩。 但我不会去那里,因为你也必须执行304 Not modified并设置适当的过期头。



Answer 3:

启用gzip压缩
所述gzip压缩可以用下面的代码php.ini中激活:

zlib.output_compression = On
zlib.output_compression_level = 9
allow_url_fopen = On


Answer 4:

我知道这个问题是有点老了,但我发现,我工作的解决方案。

添加一个名为“php.ini的”包含以下的根文件夹中的文件;

zlib.output_compression = On
zlib.output_compression_level = 9

然后,(这是你可能不会想到位)以下内容添加到您的.htaccess文件;

AddType x-mapp-php6 .html .htm .php

恩,那就对了。 我已经把php6在。 显然,将运行PHP(目前5.4)的最新稳定版本,这将使gzip压缩。 这也将运行.html.htm通过PHP解析器,这意味着它们可以被压缩的文件(文件不是通过PHP解析器运行不会被压缩)。 随意添加要通过PHP(运行任何其他扩展名.xml为例)。

顺便说一句,如果你运行.xml通过PHP文件,记得要设置页眉声明为一个XML文件,否则将无法正常工作。

希望这可以帮助!



Answer 5:

对我的作品,

首先,你必须在php.ini复制所有目录。 (的1and1提供的脚本,以便在他们的常见问题此操作)与此内容:

zlib.output_compression =1
zlib.output_compression_level =9

然后在.htaccess中加入这样的:

<IfModule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_item_exclude file \.(gz|zip|xsl)$
mod_gzip_item_include mime ^text/html$
mod_gzip_item_include mime ^text/plain$
mod_gzip_item_include mime ^image/x-icon$
mod_gzip_item_include mime ^httpd/unix-directory$
mod_gzip_item_include mime ^text/javascript$
mod_gzip_item_include mime ^application/javascript$
mod_gzip_item_include mime ^application/x-javascript$
mod_gzip_item_include mime ^text/x-js$
mod_gzip_item_include mime ^text/ecmascript$
mod_gzip_item_include mime ^application/ecmascript$
mod_gzip_item_include mime ^text/vbscript$
mod_gzip_item_include mime ^text/fluffscript$
mod_gzip_item_include mime ^text/css$
</IfModule>


Answer 6:

您可以通过添加以下代码到你的.htaccess文件中启用压缩:

<IfModule mod_rewrite.c>

AddOutputFilterByType DEFLATE text/text text/html text/plain text/xml image/svg+xml image/x-icon text/css application/x-javascript application/javascript application/x-httpd-php application/x-httpd-fastphp application/x-httpd-eruby 

</IfModule>


文章来源: How to make gzip work on 1and1 shared host WordPress site