RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteCond $1 !^(index\.php|js|media|css|robots\.txt)
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]

<IfModule mod_deflate.c>
    #必须的，就像一个开关一样，告诉apache对传输到浏览器的内容进行压缩
    SetOutputFilter DEFLATE 
    #设置不对后缀gif，jpg，jpeg，png的图片文件进行压缩   
    SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png)$ no-gzip dont-vary 
    #同上，就是设置不对exe，tgz，gz。。。的文件进行压缩
    SetEnvIfNoCase Request_URI .(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary 
    SetEnvIfNoCase Request_URI .(?:pdf|mov|avi|mp3|mp4|rm)$ no-gzip dont-vary

    #设置对文件是文本的内容进行压缩，例如text/html  text/css  text/plain等
    AddOutputFilterByType DEFLATE text/* 

    #这段代码你只需要了解application/javascript application/x-javascript这段就可以了，这段的意思是对javascript文件进行压缩
    AddOutputFilterByType DEFLATE application/ms* application/vnd* application/postscript application/javascript application/x-javascript 

    #这段是告诉apache对php类型的文件进行压缩
    AddOutputFilterByType DEFLATE application/x-httpd-php application/x-httpd-fastphp 

    # Netscape 4.x 有一些问题，所以只压缩文件类型是text/html的
    BrowserMatch ^Mozilla/4 gzip-only-text/html

    # Netscape 4.06-4.08 有更多的问题，所以不开启压缩
    BrowserMatch ^Mozilla/4.0[678] no-gzip 

    # IE浏览器会伪装成 Netscape 
    BrowserMatch \bMSIE !no-gzip !gzip-only-text/html ，但是事实上它没有问题
</IfModule>
