如何在1and1服务器上托管的网站上启用gzip

时间:2015-08-23 18:52:25

标签: php wordpress apache .htaccess

我已经阅读了主题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

或者什么?

谢谢!

1 个答案:

答案 0 :(得分:0)

您最好分开添加。基本上WordPress可以改变START&amp;结束WordPress评论。所以,你永远不应该添加任何东西(除非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&amp; 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>