Заставьте MultiViews работать, даже если запрошенный файл существует

Из документов Apache 2:

Эффект 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]
Другие вопросы по тегам