.htaccess,YSlow和“使用无cookie的域名”

时间:2009-09-16 13:55:33

标签: apache wordpress .htaccess joomla yslow

YSlow的一项衡量标准是使用无cookie的域来提供静态文件。

  

“当浏览器请求静态时   图像并发送cookie   请求,服务器忽略   饼干。这些cookie是不必要的   网络流量。解决这个问题   问题,请确保静态   请求组件   无Cookie请求创建一个   子域名并在那里托管。“ -   雅虎YSlow

我认为这意味着如果我将 www.example.com/images 移动到 static.example.com/images ,我可以获得性能提升。

虽然这很容易做到,但我会在内容管理系统(Joomla / WordPress)中失去方便的功能,以便轻松引用和链接到这些图像。

是否可以使用.htaccess将 www.example.com 上特定文件夹的所有请求重定向到 static.example.com 上的文件夹?这种方法是否也会让CMS误以为图像位于其自己域中的默认位置?

7 个答案:

答案 0 :(得分:14)

  

是否可以使用.htaccess重定向所有请求   对于www.example.com上的特定文件夹到文件夹   而不是static.example.com?

可能,但反效果 - 客户端必须发出HTTP请求,获取重定向响应,然后发出另一个HTTP请求。

这比保存的单行cookie数据要贵很多!

  

这种方法是否会欺骗CMS思考图像   是否位于其自己域中的默认位置?

没有

答案 1 :(得分:4)

  

虽然这很容易做到,但我愿意   在我的内心失去了方便的能力   内容管理系统   (Joomla / WordPress)轻松参考   并链接到这些图像。

你可以尝试做的是在Joomla中创建一个插件来创建这些引用。

例如,您有一个插件,当您在文章中输入{dinamic_path path}时,它会将“static.example.com/images”附加到提供的路径中。因此,每次需要更改服务器路径时,只需更改插件即可。对于已存在于数据库中的链接,您可以尝试使用phpMyAdmin在此结构中更改它们。

它仍然在TinyMCE中失去了WYSIWYG的能力,但它是另一种选择。

答案 2 :(得分:4)

理论上,您可以创建一个直接指向images文件夹的虚拟域,例如images.example.com。然后在您的CMS中(希望在主题层)您可以用指向子域的绝对路径替换指向images文件夹的任何路径。

答案 3 :(得分:3)

重定向会导致更多网络流量,并且延迟更多,而不仅仅是保留原样。

答案 4 :(得分:1)

它会重定向请求,但客户端仍然会将其cookie发送到服务器,所以你真的没有做任何事情。您必须直接访问未存储cookie的域中的文件才能工作。

答案 5 :(得分:0)

您真正想要做的是使用staticexample.com/images而不是static.example.com/images,这样您就不会在您可能设置的example.com域上获取任何cookie。如果你所做的只是使用简单的apache服务器或其他东西来自该域的服务器映像,那么你可以配置该服务器甚至不返回会话cookie。

重定向是一个非常糟糕的主意。 Cookie会导致一些性能下降但是到服务器的往返行程(例如重定向)会导致更严重的性能问题。

答案 6 :(得分:0)

我在下面做了并取得了成功:

<FilesMatch "!\.(gif|jpe?g|png)$">
    php_value session.cookie_domain example.com
</FilesMatch>

如果您不在cookie信息中设置图像,这意味着什么。 然后,图像不含cookie,无需服务器。