GZIP with .htaccess
Compress responses for faster delivery.
Enable compression for other HTTP responses for the production environment.
HTTP responses are compressed if the content-type header indicates a text document, for example text/css or text/html. To enable GZIP compression for other HTTP responses, like your REST or GraphQL APIs, use the AddOutputFilterByType directive:
AddOutputFilterByType DEFLATE application/jsonraw
# 1. Make sure environment variables are set
In the dashboard with your fortrabbit environment, make sure an ENV var key-value pair like this is present:
ENVIRONMENT=productionshell
In some cases we have pre-populated that for you already. See also our environment variables topic for more details on how environment variables are handled here.
# 2. Setup .htaccess files
Now in the local code base of your project, setup a custom .htaccess file for each environment in the web root of your project:
.htaccessin general and for local development.htaccess_productionfor your fortrabbit App
This can also be extended to more environments. All .htaccess files should be under version control with Git.
# 3. Configure Composer
Add this to the script part of your composer.json in your local code base:
"scripts": { "post-install-cmd": [ "@php -r \" define('HTSRC', 'web/.htaccess_' . getenv('ENVIRONMENT')); echo (file_exists(HTSRC) && copy(HTSRC, 'web/.htaccess')) ? HTSRC.' copied to web/.htaccess'.PHP_EOL : ''; \"" ] }json
This Composer post install command will replace the contents of the .htaccess file with the contents of the file .htaccess_production, if that file is present and the environment variable ENVIRONMENT is set to production.
You can extend the concept to have more stages of course. To add custom rules for a staging environment. This example also assumes that the root path of your App is web. In the Composer example above, replace the web with the root path of your project.