﻿RewriteEngine on
ExpiresActive On
ExpiresDefault A0
RewriteRule ^id=([0-9]+)? quiz.php?q=$1&title=$2.
RewriteRule ^result quiz.php

<Files id=*>
SetOutputFilter DEFLATE
</Files>

<IfModule mod_deflate.c>
<FilesMatch ".(js|css|html|htm|php|woff|ttf|woff2|png)$">
SetOutputFilter DEFLATE
</FilesMatch>
</IfModule>

<IfModule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_keep_workfiles No
mod_gzip_can_negotiate Yes
mod_gzip_add_header_count Yes
mod_gzip_send_vary Yes
mod_gzip_command_version '/mod_gzip_status'
mod_gzip_min_http 1000
mod_gzip_minimum_file_size 300
mod_gzip_maximum_file_size 512000
mod_gzip_maximum_inmem_size 60000
mod_gzip_handle_methods GET POST
mod_gzip_temp_dir /tmp
mod_gzip_item_include file .html$
mod_gzip_item_include file .php$
mod_gzip_item_include file .pl$
mod_gzip_item_include file .rb$
mod_gzip_item_include file .py$
mod_gzip_item_include file .cgi$
mod_gzip_item_include file .css$
mod_gzip_item_include file .js$
mod_gzip_item_include mime ^application/javascript$
mod_gzip_item_include mime ^application/x-javascript$
mod_gzip_item_include mime ^text/.*
mod_gzip_item_include mime ^httpd/unix-directory$
mod_gzip_item_include handler ^cgi-script$
mod_gzip_item_include handler ^server-status$
mod_gzip_item_include handler ^server-info$
mod_gzip_item_include handler ^application/x-httpd-php
mod_gzip_item_exclude mime ^image/.*
</IfModule>

# compress all text and html:
AddOutputFilterByType DEFLATE text/plain

# Gzip To compress much of what leaves the server
AddOutputFilterByType DEFLATE /html /plain /xml /css application/x-java /x-java /php

# compress , html, java, css, xml:
AddOutputFilterByType DEFLATE /plain
AddOutputFilterByType DEFLATE /html
AddOutputFilterByType DEFLATE /xml
AddOutputFilterByType DEFLATE /css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/java
AddOutputFilterByType DEFLATE application/x-java

<filesMatch ".(ico|pdf|flv)$">
Header set Cache-Control "max-age=29030400, public"
</FilesMatch>
# 1 WEEK
<filesMatch ".(jpg|jpeg|png|gif|swf)$">
Header set Cache-Control "max-age=6048000, public"
</FilesMatch>
# 2 DAYS
<filesMatch ".(xml|txt|css|js)$">
Header set Cache-Control "max-age=6048000, proxy-revalidate"
</FilesMatch>
# 1 MIN
<filesMatch ".(html|htm|php)$">
Header set Cache-Control "max-age=60, private, proxy-revalidate"
</FilesMatch>

<ifModule mod_headers.c>
Header set Connection keep-alive
</ifModule>

# Gzip – To compress much of what leaves the server
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/x-javascript text/x-javascript text/php

# Force no caching for dynamic files
<FilesMatch "\.(php|cgi|pl|htm)$">
ExpiresActive Off
Header set Cache-Control "private, no-cache, no-store, proxy-revalidate, no-transform"
Header set Pragma "no-cache"
</FilesMatch>

# Set up 2 Hour caching on commonly updated files
<FilesMatch "\.(xml|txt|html|js|css)$">
ExpiresDefault A7200
Header append Cache-Control "proxy-revalidate"
</FilesMatch>


# Set up caching on media files for 1 week
<FilesMatch "\.(gif|jpg|jpeg|png|swf)$">
ExpiresDefault A604800
Header append Cache-Control "public"
</FilesMatch>

# Set up caching on media files for 1 year (forever?)
<FilesMatch "\.(flv|ico|pdf|avi|mov|ppt|doc|mp3|wmv|wav)$">
ExpiresDefault A29030400
Header append Cache-Control "public"
</FilesMatch>