Назад | Перейти на главную страницу

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

Из Документы Apache 2:

Эффект MultiViews следующий: если сервер получает запрос на /some/dir/foo, если /some/dir имеет включенные MultiViews и /some/dir/foo делает не существует, то сервер читает каталог в поисках файлов с именем foo.*, и эффективно подделывает карту типов, которая называет все эти файлы ...

Есть ли способ заставить MultiViews творить чудеса, даже если запрошенный файл делает существует? Например, у меня могут быть такие файлы:

когда /foo.html запрашивается, я хочу вернуться foo.html.gz если Accept-Encoding: gzip заголовок отправлен.

MultiViews может с этим справиться, но вам нужно либо просто запросить /foo или переименовать foo.html к foo.html.en (что является хакерским и не работает, если вы запрашиваете из неанглийского браузера).

Это заставит его загрузить файл .gz, если допускается сжатие gzip. В противном случае он пропустит это правило и просто загрузит обычный html-файл.

Примечание: у вас должен быть установлен модуль mod_rewrite, чтобы использовать это.

RewriteCond %{HTTP:Accept-Encoding} gzip
RewriteRule ^(.*).html$ $1.html.gz [NC,L,QSA]