Заставьте MultiViews работать, даже если запрошенный файл существует
Эффект MultiViews заключается в следующем: если сервер получает запрос на
/some/dir/foo
, если/some/dir
с поддержкой MultiViews, и/some/dir/foo
не существует, то сервер читает каталог в поисках файлов с именемfoo.*
и эффективно подделывает карту типов, которая называет все эти файлы...
Есть ли способ заставить MultiViews творить чудеса, даже если запрошенный файл существует? Например, у меня могут быть эти файлы:
- foo.html
- foo.html.gz
когда /foo.html
запрашивается, я хочу вернуться foo.html.gz
если Accept-Encoding: gzip
заголовок отправлен.
MultiViews могут сделать это хорошо, но вы должны либо просто запросить /foo
или переименовать foo.html
в foo.html.en
(что является хакерским, и не работает, если вы запрашиваете в неанглийском браузере).
1 ответ
Это заставит его загрузить файл.gz, если будет принято сжатие gzip. В противном случае он пропустит это правило и просто загрузит обычный HTML-файл.
Примечание. Для этого необходимо установить модуль mod_rewrite.
RewriteCond %{HTTP:Accept-Encoding} gzip
RewriteRule ^(.*).html$ $1.html.gz [NC,L,QSA]