Все, что я пытаюсь сделать, это:
- переписать /static/styles/min.css в /static/styles/min.css.gz
- переписать / статический /scripts / min.js в /static/scripts/min.js.gz
Хитрость заключается в том, что эти файлы находятся на удаленном (общедоступном) сервере, к которому я использую обратное прокси.Я делаю это так, чтобы я мог обойти проблему того же происхождения с нашим javascript, и ускорить доставку в целом.Файлы .gz уже существуют.Независимо от того, что я делаю, я не могу запросить файл .js и вернуть файл .gz.Я пробовал это с многочисленными различными RewriteConds безрезультатно.Я также попробовал это с отключенным Accept-Encoding RequestHeader и прокомментировал.Google PageSpeed постоянно сообщает мне, что он не получает сжатые версии, и когда я запрашиваю использование curl и вручную устанавливаю заголовок «Accept-Encoding: gzip, deflate», я продолжаю получать несжатые версии.Я не могу поместить изменения в файл .htaccess, поскольку обратный прокси-сервер обрабатывается до .htaccess, и мне нужно, чтобы перезапись уже действовала, когда происходит обратный прокси-сервер.Я в полной растерянности.
Вот моя непроизводственная установка (я знаю, что она нуждается в защите):
<VirtualHost *:80>
ServerName ww.test.com
DocumentRoot "/htdocs/public"
Options +MultiViews
AddEncoding x-gzip .gz
AddEncoding gzip .gz
RewriteEngine on
RewriteCond %{HTTP:Accept-Encoding} gzip
RewriteRule ^\.js$ $1\.js\.gz [L]
RewriteCond %{HTTP:Accept-Encoding} gzip
RewriteRule ^\.css$ $1\.css\.gz [L]
<FilesMatch .*\.css\.gz>
ForceType text/css
Header append Content-Encoding gzip
</FilesMatch>
<FilesMatch .*\.js\.gz>
ForceType text/javascript
Header append Content-Encoding gzip
</FilesMatch>
ProxyRequests off
ProxyPass /static/ http://www.ourCDN.com/ourAccount/environmentName/
<Location /static/>
ProxyPassReverse /
#RequestHeader unset Accept-Encoding
</Location>
<Directory />
Options FollowSymLinks
AllowOverride All
Order deny,allow
</Directory>
</VirtualHost>