当CSS被重写为PHP文件时,IE9 Acceptheader中断
我的应用程序完全依赖mod_rewrite将image/JS/CSS URL重写为PHP文档,其中一个参数中包含文件名 例如: /帐户/帐户名/路径/到/文件 重写为:/account/accountname.php?文件名=/path/to/file php将使用正确的mimetype和文件进行响应 提前回答一个明显的问题:为什么不直接重写到文件中: 无法完成,PHP文件会根据每个帐户使用不同的filecontents(版本控制)进行响应,而“version dir”唯一已知的位置是PHPfile本身 现在,除了IE9之外,这在所有浏览器中都有效。他们显然发送了一个requestheader,其中包含一个只匹配text/css的accept头(其中FF4仍然匹配text/css,/)。看起来不错,只是apache在收到mime头之前拒绝解析PHP文档。我只是不知道如何让apache解析CSS文件,而只在解析文件后才响应acceptheader(或者根本不响应,对我来说很好) 希望有人能找到答案。。会有很大帮助的 提前谢谢当CSS被重写为PHP文件时,IE9 Acceptheader中断,css,apache2,http-headers,internet-explorer-9,Css,Apache2,Http Headers,Internet Explorer 9,我的应用程序完全依赖mod_rewrite将image/JS/CSS URL重写为PHP文档,其中一个参数中包含文件名 例如: /帐户/帐户名/路径/到/文件 重写为:/account/accountname.php?文件名=/path/to/file php将使用正确的mimetype和文件进行响应 提前回答一个明显的问题:为什么不直接重写到文件中: 无法完成,PHP文件会根据每个帐户使用不同的filecontents(版本控制)进行响应,而“version dir”唯一已知的位置是PHPfi
Tim您想要的mod称为X-SendFile。从PHP文件中使用时,它允许Apache引擎提供最终文件,就像直接请求一样: 您只需在主机上下载并启用modxsendfile即可 一篇文章: 例如:
// Look up ABSOLUTE PATH to file, etc
$file_path = ...
header("X-Sendfile: $file_path");
exit();
这将告诉Apache直接在$file\u路径下提供文件。没有混乱,没有大惊小怪 您想要的mod称为X-SendFile。从PHP文件中使用时,它允许Apache引擎提供最终文件,就像直接请求一样: 您只需在主机上下载并启用modxsendfile即可 一篇文章: 例如:
// Look up ABSOLUTE PATH to file, etc
$file_path = ...
header("X-Sendfile: $file_path");
exit();
这将告诉Apache直接在$file\u路径下提供文件。没有混乱,没有大惊小怪 我的“意外发现”博客引擎也有同样的问题。由于重写规则,IE10不接受从PHP创建的CSS文件。将[…,T=text/css]添加到.htaccess中的重写规则为我解决了这个问题
RewriteRule ^(serendipity\.css|serendipity_admin\.css) index.php?url=/$1 [L,QSA,T=text/css]
我的“意外发现”博客引擎也有同样的问题。由于重写规则,IE10不接受从PHP创建的CSS文件。将[…,T=text/css]添加到.htaccess中的重写规则为我解决了这个问题
RewriteRule ^(serendipity\.css|serendipity_admin\.css) index.php?url=/$1 [L,QSA,T=text/css]
您提到的“明显的问题”是:当涉及到CSS和JS文件时,最好让站点的静态元素由静态文件而不是通过PHP提供服务,因为通过PHP运行所有内容都会带来服务器开销。它还消除了缓存的任何可能性,这会对站点性能产生更大的影响。您应该分离CSS和JS的静态部分,并将它们作为普通文件使用。非动态方面仍然可以通过PHP单独运行,但您可能希望将动态CSS内容保持在最低限度。您提到的“明显的问题”是:当涉及到CSS和JS文件时,从静态文件而不是通过PHP提供站点的静态元素是很好的,因为通过PHP运行所有内容都会带来服务器开销。它还消除了缓存的任何可能性,这会对站点性能产生更大的影响。您应该分离CSS和JS的静态部分,并将它们作为普通文件使用。非动态方面仍然可以通过PHP单独运行,但您可能希望将动态CSS内容保持在最低限度。