[英]mod_rewrite not working with reverse proxy in vhost
我要做的就是:
訣竅是這些文件位於我反向代理到的遠程(公共)服務器上。 我這樣做是為了解決我們的JavaScript的同源問題,並總體上加快投放速度。 .gz文件已經存在。 無論我做什么,我都無法請求.js文件並返回.gz文件。 我嘗試了許多不同的RewriteConds都沒有用。 我還嘗試了啟用RequestHeader未設置Accept-Encoding並將其注釋掉的嘗試。 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>
FilesMatch
規則僅適用於磁盤上的文件-代理請求不是磁盤上的文件,因此, FilesMatch
規則不會捕獲該請求。
你可能想要
<LocationMatch "^/static/.*\.css\.gz$">
ProxyPassReverse /
....
</LocationMatch>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.