.htaccess, YSlow и "Использовать домены без файлов cookie"

Одним из измеряемых показателей YSlow является использование доменов без файлов cookie для обслуживания статических файлов.

"Когда браузер запрашивает статическое изображение и отправляет файлы cookie вместе с запросом, сервер игнорирует файлы cookie. Эти файлы cookie являются ненужным сетевым трафиком. Чтобы обойти эту проблему, убедитесь, что статические компоненты запрашиваются с запросами без файлов cookie , создав поддомен и принимаю их там ". - Yahoo YSlow

Я понимаю, что это может привести к повышению производительности, если я перейду с www.example.com/images на static.example.com/images.

Хотя это легко сделать, я потерял бы удобную возможность в моей системе управления контентом (Joomla/WordPress) легко ссылаться и ссылаться на эти изображения.

Можно ли использовать.htaccess для перенаправления всех запросов для определенной папки на www.example.com в папку на static.example.com? Будет ли этот метод обманывать CMS, заставляя думать, что изображения расположены в расположениях по умолчанию в его собственном домене?

7 ответов

Решение

Можно ли использовать.htaccess для перенаправления всех запросов для определенной папки на www.example.com в папку на static.example.com?

Возможно, но контрпродуктивно - клиент должен будет сделать HTTP-запрос, получить ответ о перенаправлении, а затем сделать еще один HTTP-запрос.

Это стоит намного больше, чем одна строка сохраненных данных cookie!

Будет ли этот метод обманывать CMS, заставляя думать, что изображения расположены в расположениях по умолчанию в его собственном домене?

Нет.

Хотя это легко сделать, я потерял бы удобную возможность в моей системе управления контентом (Joomla/WordPress) легко ссылаться и ссылаться на эти изображения.

То, что вы можете попытаться сделать, это создать плагин в Joomla, который динамически создает эти ссылки.

Например, у вас есть плагин, который, когда вы вводите {dinamic_path path} в статье, добавляет "static.example.com/images" к указанному пути. Поэтому каждый раз, когда вам нужно изменить путь к серверу, вы просто меняете плагин. Для ссылок, которые уже есть в базе данных, вы можете попробовать использовать phpMyAdmin, чтобы изменить их в этой структуре.

Он по-прежнему теряет способность WYSIWYG в TinyMCE, но является альтернативой.

Теоретически вы можете создать виртуальный домен, который указывает непосредственно на папку с изображениями, например images.example.com. Затем в вашей CMS (надеюсь на уровне темы) вы можете заменить любые пути, которые указывают на папку с изображениями, абсолютным путем к поддомену.

Перенаправления вызовут гораздо больший сетевой трафик и гораздо большую задержку, чем просто оставят вещи такими, какие они есть.

Я сделал ниже и добился успеха:

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

Это означает, что если вы не установите изображения в информации о файлах cookie. Тогда изображения без файлов cookie с сервера.

Он перенаправит запрос, но клиент все равно будет отправлять свои куки на сервер, так что на самом деле вы ничего не сделали. Вам нужно было бы получить прямой доступ к файлам из домена, который не хранит куки, чтобы он работал.

Что вы действительно хотите сделать, так это использовать staticexample.com/images вместо static.example.com/images, чтобы вы не открывали файлы cookie в домене example.com, который вы, возможно, установили. Если все, что вы делаете, это образы серверов из этого домена с простым сервером Apache или чем-то еще, то вы можете настроить этот сервер так, чтобы он не возвращал даже куки-файл сеанса.

Перенаправления - очень плохая идея. Куки-файлы вызывают некоторые потери производительности, но обратные обращения к серверу, такие как перенаправление, могут вызвать гораздо более серьезную проблему производительности.

Другие вопросы по тегам