.htaccess, YSlow, et " utiliser des domaines sans cookie"
L'un des mesurables de YSlow est d'utiliser des domaines sans cookie pour servir des fichiers statiques.
"Lorsque le navigateur demande une statique image et envoie des cookies avec le demande, le serveur ignore le cookies. Ces cookies sont inutiles le trafic réseau. Pour contourner ce problème, assurez-vous que statique les composants sont demandés avec demandes sans témoins en créant un sous-domaine et de l'hébergement y." -- Yahoo YSlow
je veux dire, que j'ai pu découvrir des gains de performances si je déménage www.example.com/imagesstatic.example.com/images.
bien que ce soit facile à faire, je perdrais la capacité pratique au sein de mon système de gestion de contenu (Joomla/WordPress) de référencer et de lier facilement ces images.
Est-il possible de l'utiliser .htaccess pour rediriger toutes les requêtes pour un dossier particulier www.example.com dans un dossier sur static.example.com à la place? Cette méthode pourrait-elle également tromper le CMS en lui faisant croire que les images étaient situées dans les emplacements par défaut sur son propre domaine?
7 réponses
Est-il possible de l'utiliser .htaccess pour rediriger toutes les requêtes pour un dossier particulier www.example.com dans un dossier sur static.example.com à la place?
Possible, mais contreproductif - le client devrait faire une requête HTTP, obtenir la réponse de redirection, puis faire une autre requête HTTP.
Cela coûte beaucoup plus que la seule ligne de données de cookie enregistré!
cette méthode pourrait-elle aussi tromper le CMS en lui faisant croire image étaient situés dans les emplacements par défaut sur son propre domaine?
Non.
bien que ce soit facile à faire, je voudrais perdre la capacité pratique dans mon système de gestion de contenu (Joomla / WordPress) pour faire facilement référence et lien vers ces images.
ce que vous pouvez essayer de faire est de créer un plugin dans Joomla qui crée dinamically ces références.
par exemple, vous avez un plugin que lorsque vous entrez {dinamic_path path} dans un article, il ajoute 'static.example.com/images" jusqu'au chemin prévu. Donc, chaque fois que vous en avez besoin pour changer le chemin du serveur, il suffit de changer le plugin. Pour les liens qui sont déjà dans la base de données, vous pouvez essayer d'utiliser phpMyAdmin pour modifier cette structure.
il perd toujours la noblesse WYSIWYG à TinyMCE, mais c'est une alternative.
en théorie, vous pouvez créer un domaine virtuel qui pointe directement vers le dossier images, tel que images.example.com. Puis dans votre CMS (avec un peu de chance au niveau du thème), vous pouvez remplacer tous les chemins qui pointent vers le dossier images par un chemin absolu vers le sous-domaine.
Les redirections causerait beaucoup plus de trafic réseau, et loin plus de latence, que de laisser les choses telles qu'elles sont.
il redirigerait la requête mais le client enverrait toujours ses cookies au serveur, donc vous n'avez vraiment rien fait. Vous devrez accéder directement aux fichiers à partir d'un domaine qui ne stocke pas de cookies pour que cela fonctionne.
je l'ai fait ci-dessous et a gagné en succès:
<FilesMatch "!\.(gif|jpe?g|png)$">
php_value session.cookie_domain example.com
</FilesMatch>
ce que cela signifie est que si vous ne définissez pas les images dans les informations de cookie. Puis les images sont sans cookie avec le serveur.
ce que vous voulez vraiment faire, c'est utiliser staticexample.com/images au lieu de static.example.com/images pour que vous ne ramassiez pas de cookies sur le example.com domaine que vous avez peut-être défini. Si tout ce que vous faites est des images de serveur de ce domaine avec un simple serveur apache ou quelque chose, alors vous pouvez configurer ce serveur pour ne pas retourner même un cookie de session.
Les redirections sont une très mauvaise idée. Les Cookies provoquent des hits de performance, mais des allers-retours vers le serveur tels qu'une redirection cause sont un problème de performance beaucoup plus grave.