要压缩我的所有网页,我使用这个.htaccess代码.如果可能,它使用Apache deflate模块,否则应用
PHP ob_gzhandler压缩.
一切正常,但由于特定原因,我不想对文件夹./folderWithoutCompression应用压缩.
问题:如果在下面的脚本中定义了Apache deflate模块(PHP ob_gzhandler case),我该如何添加此异常?
<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 $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 AddOutputFilterByType DEFLATE application/atom+xml AddOutputFilterByType DEFLATE image/svg+xml application/vnd.ms-fontobject AddOutputFilterByType DEFLATE application/x-font-ttf font/opentype </IfModule> </IfModule> <IfModule !mod_deflate.c> #Apache deflate module is not defined,active the page compression through PHP ob_gzhandler PHP_flag output_buffering On PHP_value output_handler ob_gzhandler </IfModule>
编辑
解决方法是,我对folderWithoutCompression文件夹中的所有文件使用自定义内容类型.
我确信可以使用<Location>
,<LocationMatch
>,<DirectoryMatch
>或<Directory
>排除某些目录,但是当我尝试处理时,我总是遇到Apache错误500
我终于找到了答案:
原文链接:https://www.f2er.com/php/133552.htmlHow to disable mod_deflate in apache2?
谢谢@Gumbo
# for URL paths that begin with "/foo/bar/" SetEnvIf Request_URI ^/foo/bar/ no-gzip=1 # for files that end with ".py" <FilesMatch \.py$> SetEnv no-gzip 1 </FilesMatch>