【问题标题】:How to enable gzip on a website hosted on 1and1 server如何在 1and1 服务器上托管的网站上启用 gzip
【发布时间】:2015-08-23 18:52:24
【问题描述】:

我已经阅读了主题HERE。但我不能评论它。 所以,我在文件 php.ini 中进行了更改

zlib.output_compression =1
zlib.output_compression_level =9

(在我的例子中,我使用了 compression_level =5)。

在这里测试 gzip >> GIDZipTest 和这里 >> HTTP Compression Test 我看到它正在工作。

但是,在指南中还有另一个步骤。 第二步是编辑文件.htaccess。 但这是我的问题:

我有这个 .htaccess 文件:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

AddHandler x-mapp-php5.5  .php

题目建议在.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>

如您所见,它是相似的。如何在文件中添加所有内容?

1) 我是否应该像这样在一个文件中实现不同的行:

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

# END WordPress

AddHandler x-mapp-php5.5  .php

2) 或者我应该像这样做两个不同的部分:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

<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>

# END WordPress

AddHandler x-mapp-php5.5  .php

还是什么?

谢谢!

【问题讨论】:

    标签: php wordpress apache .htaccess


    【解决方案1】:

    您最好单独添加它们。基本上,WordPress 可以更改 START 和 END WordPress cmets 之间的任何内容。所以,你不应该在两者之间添加任何东西(除非 WP 告诉你,显然)。

    所以,对于 gzip - 假设这段代码是正确的,我没有验证 - 你可以这样做:

    # BEGIN gzip
    <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>
    # END gzip
    
    # BEGIN WordPress
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    </IfModule>
    # END WordPress
    
    AddHandler x-mapp-php5.5  .php
    

    但是,当您的 gzip 已经运行时,您不需要添加它。也许你使用了一个插件来处理这个问题,比如 W3 Total Cache?


    更新:

    我不熟悉 zlib。根据您提到的来源,这是针对动态内容的,例如 php,而添加到 .htaccess 的内容是针对静态内容,例如样式表和 Javascript。因此,除非您有一个负责压缩的插件,否则您网站上的所有内容可能都不会被压缩。验证这一点可能会很好。此外,如果您使用缓存,所有内容都可能是静态的 (HTML),在这种情况下 .htaccess 可能更相关。我建议尝试一下。

    作为记录,在切换到 W3TC 之前,我在 .htaccess 中使用它进行 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>
    

    我不知道它是否适用于 1and1。


    更新 2: 1&1 recommends 在他们的“性能”服务器上使用以下 gzip:

    <IfModule mod_deflate.c>
    AddOutputFilterByType DEFLATE text/plain
    AddOutputFilterByType DEFLATE text/html
    AddOutputFilterByType DEFLATE text/xml
    AddOutputFilterByType DEFLATE text/css
    AddOutputFilterByType DEFLATE application/xml
    AddOutputFilterByType DEFLATE application/xhtml+xml
    AddOutputFilterByType DEFLATE application/rss+xml
    AddOutputFilterByType DEFLATE application/javascript
    AddOutputFilterByType DEFLATE application/x-javascript
    </IfModule>
    

    【讨论】:

    • 它已经在工作,没有代码......但是第二个代码是做什么的?我不确定是否添加 w3 总缓存,我正在阅读有关安装此类插件后网站存在巨大问题的 ppl 评论...
    • 我正在使用带有 XCache (xcache.lighttpd.net) 的 W3TC,与 Wordfence Falcon 或 WP Super Cache(更容易设置)相比,这是一个相当大的改进,但这有点困难的确。这是为您的网站找到正确设置的问题。 - 我会更新我的答案。
    • 所以,我不擅长编码,也不想弄得一团糟……我应该尝试添加此代码吗? # BEGIN gzip &lt;IfModule mod_rewrite.c&gt; RewriteEngine on RewriteBase / RewriteOptions Inherit ReWriteCond %{HTTP:accept-encoding} (gzip.*) ReWriteCond %{REQUEST_FILENAME} !.+\.gz$ RewriteCond %{REQUEST_FILENAME}.gz -f RewriteRule (.+) $1.gz [QSA,L] &lt;/IfModule&gt; # END gzip
    • 是的,如果它破坏了某些东西,您可以简单地再次删除它,但我希望它不会做任何事情,或者它会压缩当前未压缩的文件。或许先使用gzipwtf.com 来查看您的CSS 当前是否已压缩。
    • gzipwtf.com 试过,但没有...无论有没有那个代码,它都不会压缩css和大量的东西......如果你想尝试,网站是clicksforcakes.com跨度>
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-27
    • 1970-01-01
    相关资源
    最近更新 更多