|
<VirtualHost *:80> |
|
ServerSignature Off |
|
|
|
DocumentRoot "/var/www/APP_NAME/web/" |
|
DirectoryIndex app.php |
|
|
|
<Directory "/var/www/APP_NAME/web"> |
|
AllowOverride None |
|
Order Allow,Deny |
|
Allow from All |
|
|
|
<IfModule mod_rewrite.c> |
|
Options -MultiViews |
|
RewriteEngine On |
|
RewriteCond %{REQUEST_FILENAME} !-f |
|
RewriteRule ^(.*)$ app.php [QSA,L] |
|
</IfModule> |
|
|
|
<FilesMatch "(^#.*#|\.(bak|conf|dist|fla|in[ci]|log|orig|psd|sh|sql|sw[op])|~)$"> |
|
<IfModule mod_authz_core.c> |
|
Require all denied |
|
</IfModule> |
|
</FilesMatch> |
|
</Directory> |
|
|
|
CustomLog /var/log/apache2/APP_NAME-access.log combined |
|
|
|
KeepAlive On |
|
MaxKeepAliveRequests 200 |
|
KeepAliveTimeout 5 |
|
|
|
AddDefaultCharset utf-8 |
|
|
|
<IfModule mod_deflate.c> |
|
<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> |
|
|
|
<IfModule mod_filter.c> |
|
AddOutputFilterByType DEFLATE "application/atom+xml" \ |
|
"application/javascript" \ |
|
"application/json" \ |
|
"application/ld+json" \ |
|
"application/manifest+json" \ |
|
"application/rdf+xml" \ |
|
"application/rss+xml" \ |
|
"application/schema+json" \ |
|
"application/vnd.geo+json" \ |
|
"application/vnd.ms-fontobject" \ |
|
"application/x-font-ttf" \ |
|
"application/x-javascript" \ |
|
"application/x-web-app-manifest+json" \ |
|
"application/xhtml+xml" \ |
|
"application/xml" \ |
|
"font/collection" \ |
|
"font/eot" \ |
|
"font/opentype" \ |
|
"font/otf" \ |
|
"font/ttf" \ |
|
"image/bmp" \ |
|
"image/svg+xml" \ |
|
"image/vnd.microsoft.icon" \ |
|
"image/x-icon" \ |
|
"text/cache-manifest" \ |
|
"text/calendar" \ |
|
"text/css" \ |
|
"text/html" \ |
|
"text/javascript" \ |
|
"text/plain" \ |
|
"text/markdown" \ |
|
"text/vcard" \ |
|
"text/vnd.rim.location.xloc" \ |
|
"text/vtt" \ |
|
"text/x-component" \ |
|
"text/x-cross-domain-policy" \ |
|
"text/xml" |
|
</IfModule> |
|
</IfModule> |
|
|
|
<IfModule mod_headers.c> |
|
Header append Vary User-Agent env=!dont-vary |
|
|
|
Header set X-UA-Compatible "IE=edge" |
|
# `mod_headers` cannot match based on the content-type, however, |
|
# the `X-UA-Compatible` response header should be send only for |
|
# HTML documents and not for the other resources. |
|
|
|
<FilesMatch "\.(appcache|atom|bbaw|bmp|crx|css|cur|eot|f4[abpv]|flv|geojson|gif|htc|ic[os]|jpe?g|m?js|json(ld)?|m4[av]|manifest|map|markdown|md|mp4|oex|og[agv]|opus|otf|pdf|png|rdf|rss|safariextz|svgz?|swf|topojson|tt[cf]|txt|vcard|vcf|vtt|webapp|web[mp]|webmanifest|woff2?|xloc|xml|xpi)$"> |
|
Header unset X-UA-Compatible |
|
</FilesMatch> |
|
|
|
# Prevent some browsers from MIME-sniffing the response. |
|
# |
|
# This reduces exposure to drive-by download attacks and cross-origin |
|
# data leaks, and should be left uncommented, especially if the server |
|
# is serving user-uploaded content or content that could potentially be |
|
# treated as executable by the browser. |
|
Header set X-Content-Type-Options "nosniff" |
|
|
|
# Remove the `X-Powered-By` response header |
|
Header unset X-Powered-By |
|
</IfModule> |
|
|
|
<IfModule mod_expires.c> |
|
ExpiresActive on |
|
ExpiresDefault "access plus 1 month" |
|
|
|
# CSS |
|
ExpiresByType text/css "access plus 1 year" |
|
|
|
# Data interchange |
|
ExpiresByType application/atom+xml "access plus 1 hour" |
|
ExpiresByType application/rdf+xml "access plus 1 hour" |
|
ExpiresByType application/rss+xml "access plus 1 hour" |
|
|
|
ExpiresByType application/json "access plus 0 seconds" |
|
ExpiresByType application/ld+json "access plus 0 seconds" |
|
ExpiresByType application/schema+json "access plus 0 seconds" |
|
ExpiresByType application/vnd.geo+json "access plus 0 seconds" |
|
ExpiresByType application/xml "access plus 0 seconds" |
|
ExpiresByType text/calendar "access plus 0 seconds" |
|
ExpiresByType text/xml "access plus 0 seconds" |
|
|
|
# Favicon (cannot be renamed!) and cursor images |
|
ExpiresByType image/vnd.microsoft.icon "access plus 1 week" |
|
ExpiresByType image/x-icon "access plus 1 week" |
|
|
|
# HTML |
|
ExpiresByType text/html "access plus 0 seconds" |
|
|
|
# JavaScript |
|
ExpiresByType application/javascript "access plus 1 year" |
|
ExpiresByType application/x-javascript "access plus 1 year" |
|
ExpiresByType text/javascript "access plus 1 year" |
|
|
|
# Manifest files |
|
ExpiresByType application/manifest+json "access plus 1 week" |
|
ExpiresByType application/x-web-app-manifest+json "access plus 0 seconds" |
|
ExpiresByType text/cache-manifest "access plus 0 seconds" |
|
|
|
# Markdown |
|
ExpiresByType text/markdown "access plus 0 seconds" |
|
|
|
# Media files |
|
ExpiresByType audio/ogg "access plus 1 month" |
|
ExpiresByType image/bmp "access plus 1 month" |
|
ExpiresByType image/gif "access plus 1 month" |
|
ExpiresByType image/jpeg "access plus 1 month" |
|
ExpiresByType image/png "access plus 1 month" |
|
ExpiresByType image/svg+xml "access plus 1 month" |
|
ExpiresByType image/webp "access plus 1 month" |
|
ExpiresByType video/mp4 "access plus 1 month" |
|
ExpiresByType video/ogg "access plus 1 month" |
|
ExpiresByType video/webm "access plus 1 month" |
|
|
|
# Web fonts |
|
|
|
# Collection |
|
ExpiresByType font/collection "access plus 1 month" |
|
|
|
# Embedded OpenType (EOT) |
|
ExpiresByType application/vnd.ms-fontobject "access plus 1 month" |
|
ExpiresByType font/eot "access plus 1 month" |
|
|
|
# OpenType |
|
ExpiresByType font/opentype "access plus 1 month" |
|
ExpiresByType font/otf "access plus 1 month" |
|
|
|
# TrueType |
|
ExpiresByType application/x-font-ttf "access plus 1 month" |
|
ExpiresByType font/ttf "access plus 1 month" |
|
|
|
# Web Open Font Format (WOFF) 1.0 |
|
ExpiresByType application/font-woff "access plus 1 month" |
|
ExpiresByType application/x-font-woff "access plus 1 month" |
|
ExpiresByType font/woff "access plus 1 month" |
|
|
|
# Web Open Font Format (WOFF) 2.0 |
|
ExpiresByType application/font-woff2 "access plus 1 month" |
|
ExpiresByType font/woff2 "access plus 1 month" |
|
|
|
# Other |
|
ExpiresByType text/x-cross-domain-policy "access plus 1 week" |
|
</IfModule> |
|
</VirtualHost> |