Keep Server Online
If you find the Apache Lounge, the downloads and overall help useful, please express your satisfaction with a donation.
or
A donation makes a contribution towards the costs, the time and effort that's going in this site and building.
Thank You! Steffen
Your donations will help to keep this site alive and well, and continuing building binaries. Apache Lounge is not sponsored.
| |
|
Topic: Apache .htaccess RewriteRule discards config directive |
|
Author |
|
SuperRey
Joined: 12 Jul 2017 Posts: 2 Location: Madrid
|
Posted: Wed 19 Jul '17 12:38 Post subject: Apache .htaccess RewriteRule discards config directive |
|
|
I have configured my apache installation to accept a gzipped body on http requests. I did this by adding in the main apache configuration file the following lines:
Code: | <IfModule mod_deflate.c>
<IfModule mod_filter.c>
SetInputFilter DEFLATE
</IfModule>
</IfModule> |
It works as expected except in the case that a matching RewriteRule directive is found, but I am not sure if I am missing something in my configuration or this is a bug or unexpected behaviour.
My test suite is the following:
The folder/file structure is:
Code: | /.htaccess
/test.php
/api/web/index.php |
And the contents of the .htaccess is:
Code: | RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^api(.*)$ api/web/index.php [L] |
The PHP files just outputs the body contents for testing.
POSTing to /test.php or /api/web/index.php with a compressed body works as expected, decompressing the request body correctly.
POSTing to /api/, /api/web/ or /api/web/something (that is any request to api/* will get redirected to /api/web/index.php) does not get the body decompressed.
Can anybody point to me what I am missing? |
|
Back to top |
|
James Blond Moderator
Joined: 19 Jan 2006 Posts: 7377 Location: Germany, Next to Hamburg
|
Posted: Sun 23 Jul '17 17:07 Post subject: |
|
|
It is not InputFiler but OutputFilter
AddOutputFilter or AddOutputFilterByType
example
[code]
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/php text/css text/js text/javascript text/javascript-x application/x-javascript font/truetype
AddOutputFilterByType DEFLATE application/javascript application/rss+xml
DeflateCompressionLevel 9
</IfModule> |
|
Back to top |
|
SuperRey
Joined: 12 Jul 2017 Posts: 2 Location: Madrid
|
Posted: Sun 23 Jul '17 18:21 Post subject: |
|
|
Hello James Blond,
Thanks for answering.
Just to be sure, do you mean that in order to make my apache installation being able to accept http gzip compressed body requests I have to use AddOutputFilter instead of AddInputFilter? |
|
Back to top |
|
James Blond Moderator
Joined: 19 Jan 2006 Posts: 7377 Location: Germany, Next to Hamburg
|
Posted: Thu 03 Aug '17 19:32 Post subject: |
|
|
Sorry I got that wrong. AddInputFilter is right for that. |
|
Back to top |
|
|
|
|
|
|