Я работаю над веб-сайтом, реализованным как shtml, и когда я пытаюсь загрузить домашнюю страницу (http://simplyclassicremodeling.com) из IE8, он говорит, что не может открыть файл, потому что он передан как Content-Type "text.html". Страница отлично загружается из Chrome и загружается (с некоторыми проблемами CSS, которые здесь не актуальны) в Firefox.
httpd.conf имеет:
Options Includes Indexes FollowSymLinks ExecCGI
AddHandler cgi-script .cgi .pl
AddType text/html .shtml
AddHandler server-parsed .shtml
и далее вниз:
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/javascript application/javascript
Заголовки HTTP из сеанса Telnet:
GET http://simplyclassicremodeling.com/ HTTP/1.0
HTTP/1.1 200 OK
Date: Fri, 27 Jan 2012 21:57:54 GMT
Server: Apache/2.0.63 (Unix) mod_ssl/2.0.63 OpenSSL/0.9.9-dev DAV/2 PHP/5.2.6
Accept-Ranges: bytes
Cache-Control: max-age=2592000, public
Expires: Sun, 26 Feb 2012 21:57:54 GMT
X-UA-Compatible: IE=Edge,chrome=1
Connection: close
Content-Type: text.html
Переставлены ли «AddType» и «AddOutputFilter»? На основании этой информации, знаете ли вы, почему IE8 может подумать, что файлы .shtml отправляются как Content-Type: text.html? Есть ли способ задать Apache глобально: «Если вы собираетесь передавать как 'text.html', используйте вместо этого 'text / html'?
Спасибо,
Возможно, где-то еще в httpd.conf или в одном из включенных файлов есть неправильная строка. Я бы проверил основную конфигурацию и другие с помощью grep, чтобы отследить это.
grep Includes httpd.conf
grep text.html httpd.conf
Кроме того, вы можете принудительно указать тип с помощью FilesMatch. Вот пример:
<FilesMatch "\.(shtml)$">
# type only
ForceType text/html
# type and character set
# ForceType 'text/html; charset=UTF-8'
</FilesMatch>
Вы можете попробовать переписать заголовок, если браузер IE:
BrowserMatch MSIE
SetEnvIf Request_URI "\.shtml$" msie_ssi
Header set Content-Type text/html env=msie_ssi
(Предостережение: это не проверено, но я думаю, что он должен работать в соответствии с документация mod_setenvif.)