mod_setenvif и mod_headers вместе должны сделать это возможным.Я бы предложил установить обычный тип контента для файлов .html на application/xhtml+xml
, если вы хотите обслуживать это большую часть времени.
AddType application/xhtml+xml html
Затем сопоставьте клиентов, которых вы хотите обработать специально, и измените контент-Тип:
BrowserMatch some-regex-matching-old-clients is_old_and_crap
Header edit Content-Type application/xhtml\+xml text/html env=is_old_and_crap
В противном случае это тоже должно быть тривиально с mod_rewrite.
RewriteEngine On
RewriteCond %{HTTP:User-Agent} some-regex-matching-old-clients
RewriteRule \.html$ - [T=text/html]
Правило здесь используется для сопоставления запросов на файлы, заканчивающиеся на .html, который не являетсяне идеал.Расширение может появиться до конца (например, foo.html.en.gz
или не отображаться вообще (возможно, файлы index.html). Было бы лучше использовать текущее значение Content-Type, но я считаю, что mod_rewrite выполняется слишком рано в цикле запроса дляэто возможно.