16 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Как сделать чтоб картинки загружались с поддомена

Как сделать чтоб картинки загружались с поддомена

Все доброго времени суток, интересует вопрос. Есть многоязычный сайт где картинки иногда приходится дублировать на каждый поддомен. Как сделать чтобы при обращении к subdomain.domain.ru/img/adv/ загружались картинки из domain.ru/img/adv/ ?

Сами поддомены у меня расположены в директории домена т.е /site/www/damain.ru/subdomain/ ну и картинки соответственно в /site/www/damain.ru/subdomain/img/adv/ и в идеале хотелосьбы для поддоменов чтоб грузились картинки с основного домена /site/www/damain.ru/img/adv/

Просто http редирект на основной домен и папку не совсем подходит, т.е чтоб втупую перекидывало на основной домен и на нужную картинку (тогда можно сразу пути писать на основной домен). Может можно сделать так чтоб поисковик видел subdomain.domain.ru/img/adv/image.jpg а оно уже внутри как-то выдавало то что нужно? (желательно не php скриптом и командой аля file_get_contents()) Собственно интересует наколдовать средствами .htaccess и mod_rewrite или ещё мож какие-то варианты есть?
Думаю тема будет интересна многим.

Спасибо что дочитали до конца и собственно зараннее спасибо за ответ)

Вполне реально средствами .htaccess и mod_rewrite сделать подобное (если конечно статика отдается аппачем)

Примерно такая группа условий для реврайта

1. Проверяется условие что не было реврайтов
2. Проверяется условие что запрашивается файл с поддомена
3. Проверяется условие что в папке_с_файлами основного домена есть файл по маске “имя.расширение” (из RewriteRule $2.$3)
4. При соблюдении условий отдаем файл “имя.расширение” из папки_с_файлами основного домена, то есть отбрасывается поддомен

RewriteCond % ^$
RewriteCond % ^.+.основной_домен.ру$
RewriteCond %/папка_с_файлами/$2.$3 -f
RewriteRule (^|/)([^/]+).(jpg|gif|png)$ папка_с_файлами/$2.$3 [L]

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

Сообщение от gormarket:
Вполне реально средствами .htaccess и mod_rewrite сделать подобное (если конечно статика отдается аппачем)

Примерно такая группа условий для реврайта

1. Проверяется условие что не было реврайтов
2. Проверяется условие что запрашивается файл с поддомена
3. Проверяется условие что в папке_с_файлами основного домена есть файл по маске “имя.расширение” (из RewriteRule $2.$3)
4. При соблюдении условий отдаем файл “имя.расширение” из папки_с_файлами основного домена, то есть отбрасывается поддомен

RewriteCond % ^$
RewriteCond % ^.+.основной_домен.ру$
RewriteCond %/папка_с_файлами/$2.$3 -f
RewriteRule (^|/)([^/]+).(jpg|gif|png)$ папка_с_файлами/$2.$3 [L]

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

кратко:
добавляете альяс для субдомена

Alias /img/adv /site/www/damain.ru/img/adv

у меня это выглядит примерно так

если уж савсем на пальцах, то

Alias [(папка или файл который вы хотите у себя видеть на домене/субдомене)] [(полный путь к файлу или папке откуда вы хотите это все выводить)]

Читать еще:  Как сделать кнопку в презентации powerpoint

в моем случае при наборе ххх.хх/tor/ будет выводиться содержимое /usr/local/share/transmission/web , причем физически папка /tor/ на сервере отсутствует.

Как перенести изображения на субдомен

Всем привет! Сегодня я расскажу о том, как перенести папку uploads на субдомен. Рассматривается WordPress, но реализуемо и на других CMS. Для чего это нужно делать: у вас высоко-посещаемый сайт с большой нагрузкой, хостинг не справляется и требуется перенести статические файлы на другой физический сервер; вы просто хотите немного ускорить загрузку сайта (вопрос спорный, подробнее читайте в комментариях ниже от cj Maksushkin). А надо вам это или нет, решите по мере прочтения статьи 😉

Немного теории

Браузер загружает картинки по мере прочтения кода (если не прав, поправьте). Каждый файл берет на себя одно соединение, будь то картинки, скрипты или стили. Количество соединений с одного домена ограничено, возьмем абстрактную цифру 10. Субдомен воспринимается браузером как отдельный домен, следовательно, с него можно получить еще 10 соединений. То есть, теперь у нас стили и скрипты грузятся с основного домена, а картинки с другого, итого 20 соединений. Если вынести еще и скрипты на отдельный домен, то получим 30 и так далее.

Плюсы: при высокой нагрузке на хостинг, субдомен можно перенести вообще на другой сервер (Например, Хабрахабр так и работает, на нескольких серверах).

Минусы: относительная сложность в установке.

Практика

Если у вас сайт на WordPress, то минус, описанный выше, не считается. Вордпресс поддерживает размещение изображений на другом домене или субдомене.

План действий для нового сайта, на который еще не загружали медиа-контент:

Создаете субдомен через свою панель управления. В Cpanel это Домены —> Субдомены —> Создать. В Plesk фактически так же.

Затем нужно зайти в Консоль WordPress—> Параметры —> Медиафайлы

Здесь нужно действовать в зависимости от того, какая у вас панель управления. Если вы создали субдомен img.domen.ru, то в Cpanel папка img автоматически создастся в корне сайта и будет доступна как domen.ru/img/. Тогда прописываем так:

Сохранять файлы в этой папке *пусто*

Полный URL-путь к файлам https://img.domen.ru

В Plesk нужно сделать немного по другому:

Сохранять файлы в этой папке /home/vhosts/domen.ru/subdomains/img/httpdocs

Полный URL-путь к файлам https://img.domen.ru

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

Теперь нужно выставить права на папку. В Cpanel ничего делать не надо, все нормально, а вот в Plesk на каталоги, где размещена картинка, были неверно указаны права:

Читать еще:  Как сделать собственником квартиры другого человека

было — 754
нужно — 755

Выставляем 755 и радуемся, теперь всё работает!

А теперь рассмотрим, если сайт старый и уже очень много картинок загружено.

Через панель заходим в phpMyAdmin, там выбираем нашу базу и нажимаем вкладку SQL. Прописываем следующий код:

Этой командой мы обновим в базе данных старые значения на новые.

Нажимаем GO (или ОК, если версия русская).

Теперь нужно ввести следующий код:

Готово! Теперь все изображения перенесены и база данных обновлена.
Но, остается одно НО. Поисковики будут помнить старые ссылки на изображения. Для предотвращения этого настроим 301 редирект. В корне сайта открываем файл .htaccess и добавляем туда строчку кода:

Как ускорить загрузку блога. Часть 3. Картинки на поддомене

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

Это уже не первая статья из данной серии, в которой я приводил советы по увеличения скорости загрузки сайта. Вот первые две части:

– Как ускорить загрузку Вашего блога
– Замена плагинов на код. Как ускорить блог, часть 2

Пролог.

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

Так вот, почему бы не «вытеснить» картинки на другой сайт, чтобы они подгружались оттуда, не мешая загрузке основного контента? Даже лучше, вытесним их на поддомен! Это ведь, своего рода, уже другой сайт!

Посмотрите исходный код данной страницы, нажав на сочетание клавиш Ctrl + U. Видите что картинки у меня располагаются по адресу images.sylar.ru? Провернуть данный фокус очень и очень просто! :silly:

По данным этого сервиса, скорость загрузки моего блога составляет 0.08 секунды. Думаю неплохо! 🙂

Инструкция по перемещению картинок в поддомен.

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

Итак, вы создали поддомен, и он даже работает, что гораздо лучше для нас и дает основному сайту продвижение до небес. Создайте в корне этого поддомена файл test.php и занесите в него следующий код:

Читать еще:  Как сделать открытку рубашку

Затем наберите в браузере:

В случае успеха вам выведется строчка, что типа:

Это полный путь до поддомена, который прописан в операционной системе вашего хостера, и у вас этот путь будет совершенно другим, не копируйте мой. :biggrin:

Далее, в админке wordpress заходим в «Параметры — Медиафайлы» и копируем нашу строку в первое поле. Во второе поле пишем полный адрес нашего поддомена.

Половину работы мы сделали. Теперь вам надо скопировать все содержимое папки Uploads, которая находится в папке wp-content в корень вашего поддомена. Лучше сперва скопировать содержимое, а не переносить, потому как в случае если вы будете неспешно ковыряться, на вашем сайте вместо картинок будет пустота, в лучшем случае. :biggrin:

Далее придется поработать с phpmyadmin, она есть у каждого хостера и, как правило, доступ к ней возможен из панели управления хостингом.

Заходим в phpmyadmin, выбираем нашу базу данных и нажимаем на вкладку SQL:

Как ввести sql запрос

Кстати, в следующем посте я расскажу про супер альтернативу для phpmyadmin! Не пропустите! 😉

В текстовое поле впишите следующий запрос:

UPDATE `wp_posts` SET `post_content` = REPLACE(`post_content`, ‘https://sylar.ru/wp-content/uploads/’,’https://images.sylar.ru/’)

И затем сразу же этот код:

UPDATE `wp_posts` SET `guid` = REPLACE(`guid`, ‘https://sylar.ru/wp-content/uploads/’,’https://images.sylar.ru/’)

Это перепишет все пути картинок со старого адреса на новый.

Ну вот и все, осталось всего лишь перенаправить поисковики на новые адреса картинок, чтобы они не считались дублями. Для этого в файл .htaccess внесите запись:

RedirectMatch 301 ^/wp-content/uploads/(.*)$ https://images.sylar.ru/$1

Заключение.

Ну вот, теперь точно все! Уверен, результат вас порадует!

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

Большое спасибо за уделенное время!

Кстати, заметили классный баннер у меня в сайдбаре? Это новый сервис покупок на Ebay. Сейчас я экспериментирую с ним при помощи Кисточка CMS что я купил несколько дней назад. О результатах я сообщу попозже, но уже не терпится о них рассказать, поэтому подписывайтесь на обновления блога и тогда точно не пропустите! 🙂

Получайте самые интересные новые публикации на свой email:

Источники:

https://searchengines.guru/showthread.php?t=776827
https://atamovich.ru/kak-perenesti-izobrazheniya-na-subdomen/
https://www.kokh.ru/kak-uskorit-zagruzku-bloga-chast-3-kartinki-na-poddomene/

голоса
Рейтинг статьи
Ссылка на основную публикацию
Статьи c упоминанием слов:

Для любых предложений по сайту: [email protected]