URL / субдомен перезаписывает (htaccess)

скажем, у меня есть следующий файл:

http://www.example.com/images/folder/image.jpg

Я хочу служить на

http://s1.example.com/folder/image.jpg

Как я могу переписать htaccess, чтобы указать на него?

например, я делаю поддомен s1.example.com и затем на этом субдомене я добавляю правило htaccess для указания любых файлов, чтобы вытащить его из http://www.example.com/images/

выполняет ли подача файлов таким образом функцию подачи контента из домена без кулинарии?

4 ответов


первый позвольте мне немного поговорить о концепции cookieless доменов. Как правило, при запросе чего-либо через http, любые соответствующие куки отправляются с запросом. Cookies, зависят от того, из какого домена они исходят. Идея использования домена без cookies заключается в том, что вы перемещаете статический контент, который не содержит cookies, например изображения, в отдельный домен, чтобы никакие cookies не отправлялись с этим запросом. Это сокращает небольшое количество трафика.

сколько вы выгода от этого зависит от типа страницы. Чем больше изображений, тем больше вы получаете. Если ваш сайт загружает большую кучу небольших изображений, таких как аватары или миниатюры изображений, вы можете многое получить. Напротив, если ваш сайт не использует куки, вы ничего не получите. Вполне возможно, что ваша страница не будет загружаться заметно быстрее, если она использует только небольшое количество изображений, которые будут кэшироваться между загрузками страниц.

одна вещь, чтобы иметь в виду, кроме того, это печенье установлено для example.com также будет отправлено с запросами на s1.example.com как "s1. " является поддоменом example.com. Вам нужно использовать www. (или любой другой поддомен по вашему выбору) для разделения пространств файлов cookie.

во-вторых, если вы решили, что домен без кулинарии на самом деле стоит попробовать, давайте поговорим о реализации.

решение Шихара плохо! В то время как решение, похоже, работает на поверхности, он вообще теряется смысл использования домена без. Для каждого изображения, сначала s1. url пробуется. The s1. URL затем делает перенаправление на www. домен, который запускает второй http-запрос. Это потеря, как ни посмотри. То, что вам нужно-это переписать, который изменяет URL внутренне на веб-сервере, даже не осознавая, что браузер.

для простоты, я предполагаю, что все домены указывают на один и тот же каталог, поэтому это www.example.com/something = example.com/something = s1.example.com/something = blub.example.com/something. Это делает вещи проще, если вам действительно нужно хранить изображения физически в "www.example.com/images".

я бы порекомендовал .htaccess, который выглядит немного примерно так:

# Turn on rewrites
RewriteEngine On

# Rewrite all requests for images from s1, so they are fetched from the right place
RewriteCond %{HTTP_HOST} ^s1\.example\.com
# Prevent an endless loop from ever happening
RewriteCond %{REQUEST_URI} !^/images
RewriteRule (.+) /images/ [L]

# Redirect http://s1.example.com/ to the main page (in case a user tries it)
RewriteCond %{HTTP_HOST} ^s1\.example\.com
RewriteRule ^$ http://www.example.com/ [R=301,L]

# Redirect all requests with other subdomains, or without a subdomain to www.
# Eg, blub.example.com/something -> www.example.com/something
#     example.com/something      -> www.example.com/something
RewriteCond %{HTTP_HOST} !^www\.example\.com
RewriteCond %{HTTP_HOST} !^s1\.example\.com
RewriteRule ^(.*)$ http://www.example.com/ [R=301,L]

# Place any additional rewrites below.

только для общей информации людей, которые, как я, могут исследовать преимущества этого. Из того, что я читаю, это не просто сокращение накладных расходов на устранение файлов cookie, отправленных с http-запросами. По-видимому, многие браузеры ограничивают максимальное количество подключений к 1 домену / серверу до 6 одновременно. Поэтому, если у вас есть отдельный домен на сервере diff, вы можете удвоить его до 12. Что мне кажется основным потенциалом для серьезного повышения скорости.

хотя в любом случае, если я понимание этого правильно. Другой домен, обслуживающий статическое содержимое, должен быть расположен на другом сервере из основного домена. На самом деле имеет смысл, заядлый пользователь firefox и tweaker. Когда вы проверяете настройки about: config в firefox, максимальное количество подключений на сервер по умолчанию равно 6. Человек может вручную поднять его до максимума 8. Но большинство пользователей firefox, вероятно, не тратят достаточно времени на знакомство с тем, как изменить браузер и оставить его по умолчанию max 6.

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


Если вы хотите перенаправить трафик с www.example.com к s1.example.com, используйте следующий htaccess на www.example.com

RewriteCond %{HTTP_HOST} ^(s1\.example\.com)
RewriteRule (.*) http://www.example.com%{REQUEST_URI}[R=301,NC,L]

Если это не то, что вы ищете, доработать вопрос.


Я думаю, что вы можете иметь его назад, (или, очень возможно, что я и делаю). Чтобы уточнить, если вы реализуете субдомен без файлов cookie и имеете базовый URL www. по крайней мере, в этом случае, печенье на www, например: основным сеттером файлов cookie является google analytics, поэтому при настройке своего скрипта на моем сайте он выглядит так:

var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'analytics-acc-#],
['_setDomainName', '[www.valpocreative.com][1]'],
['_trackPageview']);

вы можете видеть здесь, что я установил свой основной домен в www, поправь меня, если я ошибаюсь в моем случае мне нужно перенаправить www чтобы не www поддомен, а не наоборот. Это также cname настройка сделана на моем cpanel (cname= "cdn" указывая на www.domain.com)