Jump to content
  • 0

включить gzip-сжатие


cyklop77
 Share

Question

включаю gzip-сжатие на сервере посредством добавления в конец .htaccess кода


<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/javascript text/css application/x-javascript
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4.0[678] no-gzip
BrowserMatch bMSIE !no-gzip !gzip-only-text/html
<ifmodule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_item_include file \.js$
mod_gzip_item_include file \.css$ </ifmodule>
</IfModule>

в результате сайт падает и в браузере получаю ошибку

Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator, admin@main-hosting.com and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.

Additionally, a 500 Internal Server Error error was encountered while trying to use an ErrorDocument to handle the request.

подскажите пожалуйста что я делаю неправильно. или другой способ включить gzip-сжатие передаваемых файлов.

срвер apache. править его конфиги напрямую нет возможности. возможность использования .htaccess включена точно

проверяю статус gzip-сжатия ff плагином page speed/resources или этим

Edited by cyklop77
Link to comment
Share on other sites

9 answers to this question

Recommended Posts

  • 0

ошибка с номером 500 после редактирования .htaccess - допустили ошибку в синтаксисе

выдрал из своего .htaccess

# ———————————————————————-
# Gzip compression
# ———————————————————————-
<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 text/javascript application/javascript application/x-javascript text/x-js text/ecmascript application/ecmascript text/vbscript text/fluffscript
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>

  • Like 1
Link to comment
Share on other sites

  • 0

я такую конструкцию для css-файлов использовал:

<ifModule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_item_include file \.(css)$
mod_gzip_item_include mime ^text/.*
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
</ifModule>
AddOutputFilterByType DEFLATE text/css

по аналогии можете прописать нужные расширения. имхо, к чему проверка старых мозил? их процент нечтожен, как правило.

PS: а модуль gzip апача-то вас установлен? если нет, то 500-ая ошибка неизбежна.

PPS: гоню, условие проверки же есть :facepalmxd:

Edited by Быколай
Link to comment
Share on other sites

  • 0

быколай, ваш код имеет небольшой эффект. мой фф плагин пишет, что бестродействие увеличилось на 1%. как я понял это из-за того, что код работает только с css

NeoXidizer, ваш код тоже не работает. я подозреваю, что на хостинге просто нет этогог модуля или его использование запрещено(нагрузка на сервер как я понимаю значительно увеличивается). существует ли способ как-нибудь убедиться в этом, не спрашивая админа?

так же пробовал акой аналог gzip-сжатия


#Сжимаем элементы с помощью mod_deflate
<ifmodule mod_deflate.c="">
<filesmatch .(js|css)$="">
SetOutputFilter DEFLATE
</filesmatch>
</ifmodule>

не помогло

Edited by cyklop77
Link to comment
Share on other sites

  • 0

Да, как написал NeoXidizer, стоит убедиться визуально, ушли ли ракеты есть ли у апача данные модули. Хотя есть проверка IF, так что отсутствие оных, не должно ронять в 500, видимо синтаксическая опечатка всё-таки. Честно говоря PageSpeed не особо доверяю, если вы об этом плагине. У меня сжимает css на 2-7 порядка. gzip он и есть gzip. другое дело, что не все файлы одинаково круто жмутся, лучше всего, насколько понимаю текстовые (js, css, html), а вот графика, например, особо не пожмётся, если компрессия в самом формате уже используется.

Link to comment
Share on other sites

  • 0

так и есть. mod_deflate не находится через phpinfo()

ошибка 500 была связана с опечаткой

<_< а если ход конём сделать: в php буфферизация вывода и return gzencode($content), ну и header("Content-Encoding: gzip"); ??

или удалось уже gzip запустить, только deflate не хватает?

Link to comment
Share on other sites

  • 0

так и есть. mod_deflate не находится через phpinfo()

ошибка 500 была связана с опечаткой

<_< а если ход конём сделать: в php буфферизация вывода и return gzencode($content), ну и header("Content-Encoding: gzip"); ??

или удалось уже gzip запустить, только deflate не хватает?

на хостинге нет ни gzip, ни deflate

то, что вы сеичас написали для меня шибко умно. ничего не понял)

не подскажете как в вашем коде

<ifModule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_item_include file \.(css)$
mod_gzip_item_include mime ^text/.*
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
</ifModule>
AddOutputFilterByType DEFLATE text/css

прописать другие расширения. например js и png

Edited by cyklop77
Link to comment
Share on other sites

  • 0

на хостинге нет ни gzip, ни deflate

то, что вы сеичас написали для меня шибко умно. ничего не понял)

не подскажете как в вашем коде

<ifModule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_item_include file \.(css)$
mod_gzip_item_include mime ^text/.*
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
</ifModule>
AddOutputFilterByType DEFLATE text/css

прописать другие расширения. например js и png

по логике должно быть так:

<ifModule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_item_include file \.(css|js|png)$
mod_gzip_item_include mime ^text/.*
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
</ifModule>
AddOutputFilterByType DEFLATE text/css

только вот загвоздка такая: данный код у меня на домашнем старом локалхосте отрабатывает, а там вроде бы древний апач (в данный момент не могу посмотреть).

Сейчас почитал интернет: в апаче 2.х.х. уже не используется mod_gzip, есть mod_deflate. Дока тут: http://httpd.apache.org/docs/2.0/mod/mod_deflate.html

на самом деле использовать очень просто его:

AddOutputFilterByType DEFLATE text/css text/html text/plain text/xml image/png 

жмёт очень хорошо, сейчас потестил под apache 2.2.4 (под Win32) текстовый файл (css) в 16 раз, png > 20.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy