Saya ingin Apache mengirim file statis gzip'ed melalui kabel, tetapi juga ingin Apache tidak selalu gzip berulang-ulang. Jadi saya pikir jika tidak mungkin untuk mengirimkan file .gz jika ada. Pengaturan ini:
Struktur file:
static/
|
|--- style.css
|
\--- style.css.gz
Dan berikut ini dalam .htaccess:
aturan mod_rewrite:
RewriteCond %{REQUEST_FILENAME}.gz -s
RewriteRule ^(.+) $1.gz [L]
Dan pengaturan ini:
AddEncoding x-gzip .gz
Sebenarnya, ini berfungsi sejauh file .gz dikirim bukan .css, jika permintaan masuk /static/style.css
. Masalahnya hanya, bahwa file tersebut dikirim sebagai "application / x-gzip" dan bukan sebagai "text / css". Menggunakan flag T mod_rewrite tidak mengubah ini. Juga tidak secara eksplisit
AddType text/css .css
Adakah yang tahu, bagaimana saya bisa mencapai perilaku yang diinginkan? Atau apakah itu tidak perlu karena alasan tertentu saya tidak memperhitungkannya?
EDIT: Ada kesulitan tambahan: Mengirim file asli ke klien tanpa dukungan gzip. Adakah yang tahu bagaimana ini bisa bekerja?
sumber
Jawaban:
Solusi untuk mengirim versi yang benar ke browser yang tidak menerima gzip akan menjadi sesuatu di sepanjang baris:
Juga, ada cara lain untuk mengubah jenisnya, yaitu:
HTH.
sumber
RewriteCond
hanya cocok ketika klien tidak menerima encoding gzip.Ah, sepertinya saya menemukan solusinya: Bendera T tidak berfungsi jika diatur pada aturan yang sama, tetapi itu pasti berhasil, jika Anda membelanjakannya dengan aturan sendiri:
Tetap saya ingin mendengar solusi dan pendapat orang lain.
sumber