.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 или чем-то еще, то вы можете настроить этот сервер так, чтобы он не возвращал даже куки-файл сеанса.
Перенаправления - очень плохая идея. Куки-файлы вызывают некоторые потери производительности, но обратные обращения к серверу, такие как перенаправление, могут вызвать гораздо более серьезную проблему производительности.