我已经安装了MediaWiki,并且已经使用Google的PageSpeed工具作为指导优化了各个方面,到目前为止我已经能够做出很多改进。
有一件事我不能做的是使用我的.htaccess文件为以下资源设置一个Expires头文件:
http://example.com/mywiki/load.php?debug=false&lang=en-gb&modules=startup&only=scripts&skin=vector&*
它没有像.css或.js这样的正常文件扩展名。
我可以在我的.htaccess文件中为这些文件设置过期头文件吗?
简短的回答:可能这不是一个好主意,为这些资源设置过期标题。
说明:
您需要了解更多关于URL格式及其分隔符的基本知识:// , @ , : , ? 和# :
scheme://[user:password@]domain:port/path?query_string#fragment_id
在您的url中:
http example.com 80 /mywiki/load.php debug=false&lang=en-gb&modules=startup&only=scripts&skin=vector&* 这里的主要问题是你正在混合path和查询string彼此。 您的文件位置是/mywiki/load.php ,它具有正常的文件扩展名.php 。 它的部分查询string发送这个PHP脚本的数据进行处理:名称/值对用符号分隔。
现在我们知道我们正在处理一个PHP脚本,我们必须认识到,Apache现在提供了dynamic内容 :内容发生了变化。 为这种内容设置caching控制通常不是一个好主意。 如果我们想这样做,这是可能的。 我们可以通过.htaccess的文件扩展名来设置它,或者PHP脚本本身也可以设置caching标题,例如
header("Expires: " . gmdate("D, d MYH:i:s", time() + 3600) . " GMT");
如果PHP脚本提供图像,下载或其他静态内容,这将是一个选项。 但是,由于您只是使用PHP软件而不是开发它,所以您应该认为程序员已经想到了这一点。 它也会改变更新。 因此,当您为静态内容设置标题时,您很可能已经完成了caching控制。