在将高流量网站从 Redhat 迁移到 Suse 后,Internet Explorer 用户(至少是 IE 9)在某些情况下无法查看首页(错误消息:“Internet Explorer 无法显示该页面”,指向 500 服务器错误)。在大多数情况下,Internet Explorer 可以正确显示页面,所有其他浏览器也是如此。我在大约 10 台不同的计算机上检查过这个问题,这些计算机使用不同的 IE 版本和不同的操作系统。Browserstack 还可以在所有版本的 IE 上正确显示网站。到目前为止,我自己还无法重现该错误。在旧服务器上不存在此问题。
根据 apache access.log,错误可能与 .htaccess 文件中指定的重定向有关。如果发生错误,访问日志会给出状态 302,之后则没有任何内容(对于特定 IP 地址)。错误日志为空。请参阅下面的完整 .htaccess 文件。
此网站已安装 SSL,运行良好,没有任何已知错误。奇怪的细节:如果收到错误的用户按 F5,则网站加载无问题,即使在重新启动或重启浏览器后也是如此。这表明存在缓存问题,但到目前为止我还没有找到原因。
SetEnv APPLICATION_ENV production
Options All -Indexes
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{SERVER_PORT} !^443$ [OR]
RewriteCond %{HTTP_HOST} !www\.domain\.nl [NC]
RewriteRule ^(.*)$ https://www.domain.nl/$1 [R,L]
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
<Files .htaccess>
order allow,deny
deny from all
</Files>
其他一些细节:
Apache/2.2.12 (Linux/SUSE) PHP 版本 5.3.17 Zend Engine v2.3.0 mod_ssl/2.2.12
谁能帮忙?抱歉,问题定义不太清楚,但恐怕这与问题本身有关。
提前致谢
答案1
我遇到了完全相同的行为,但没有 SSL。我无法确定问题的根源(除了 IE 与基本 HTTP 协议不兼容之外),但 htaccess 中的这段代码解决了该问题:
BrowserMatch "MSIE [2-8]" nokeepalive downgrade-1.0 force-response-1.0
如果这没有帮助,请测试它%{HTTP_HOST}
是否真的包含你在 IE 中期望的内容,因为显然HTTP_HOST可以为空。