Редирект apache на другой порт
Перенаправление Apache на другой порт
я боролся с этим в течение некоторого времени, и я наверняка делаю что-то неправильно.
у меня есть сервер apache и сервер JBoss на одной машине. Я хотел бы перенаправить трафик на mydomain.com для JBoss localhost: 8080 / пример. DNS в настоящее время настроен для mydomain.com и он будет идти прямо к порту 80 при входе в браузер.
мой вопрос в том, как перенаправить на другой порт, когда определенное доменное имя приходит в apache (в этом случае, «mydomain.com»)?
13 ответов
после внесения этих изменений добавьте необходимые модули и перезапустите Апач
Я решил эту проблему со следующим кодом:
Я хотел сделать именно это, чтобы я мог получить доступ к Дженкинсу из корневого домена.
я обнаружил, что мне пришлось отключить сайт по умолчанию, чтобы заставить это работать. Вот что я сделал.
и вставьте это в файл:
Далее вам необходимо включить / отключить соответствующие сайты:
надеюсь, это кому-то поможет.
обнаружил это методом проб и ошибок. Если в конфигурации указано имя сервера, директива VirtualHost должна будет сделать то же самое. В следующем примере awesome.example.com и amazing.example.com оба будут перенаправлены в некоторую локальную службу, работающую на порту 4567.
Я знаю, что это не совсем отвечает на вопрос, но я помещаю его здесь, потому что это лучший результат поиска для переадресации портов Apache. Так что я думаю, это кому-то поможет. когда-нибудь.
вы должны убедиться, что прокси включен на сервере. Это можно сделать с помощью следующих команд:
Если вам не нужно использовать прокси для JBoss и mydomain.com: 8080 может быть «подвержен» миру, тогда я бы сделал это.
это может быть старый вопрос, но вот что я сделал:
после внесения этих изменений добавьте необходимые модули и перезапустите apache
просто используйте обратный прокси-сервер в конфигурации apache (напрямую):
Apache поддерживает виртуальные хосты на основе имен и IP. Похоже, вы используете оба, что, вероятно, не то, что вам нужно.
Я думаю, что вы на самом деле пытаетесь установить виртуальный хостинг на основе имен, и для этого вам не нужно указывать IP-адрес.
попробуйте привязать ко всем IP-адресам, если вы действительно не хотитевиртуальный хостинг на основе ip. Это может быть в случае, если сервер имеет несколько IP адресов, и вы хотите обслуживать разные сайты по разным адресам. Наиболее распространенной настройкой (я бы предположил) являются виртуальные хосты на основе имен.
все отличные идеи для доступа к портам через доменные имена на виртуальных серверах. Не забудьте, однако, включить виртуальные серверы; это может быть прокомментировано:
мы запускаем WSGI с сервером Apache в домене sxxxx.com и сервер golang, работающий на порту 6800. Некоторые брандмауэры, похоже, блокируют доменные имена с портами. Вот наше решение:—3—>
мой apache слушает 2 разных порта,
я использую 80, когда мне нужен прозрачный URL-адрес и не ставьте порт после URL-адреса полезно для сервисов google, которые не позволяют локальный url?
но я использую 8080 для внутренней разработки, где я использую порт в качестве ссылки для»среды разработки»
это работает и в ISPConfig. В списке веб-сайтов войдите в домен, перейдите на вкладку Параметры, добавьте следующие строки:;
затем перейдите на веб-сайт и wolaa 🙂 это тоже работает протокол HTTPS.
Перенаправление Apache на другой порт
я боролся с этим в течение некоторого времени, и я наверняка делаю что-то неправильно.
у меня есть сервер apache и сервер JBoss на одной машине. Я хотел бы перенаправить трафик для mydomain.com для JBoss localhost: 8080 / пример. DNS в настоящее время настроен для mydomain.com и он будет идти прямо к порту 80 при входе в браузер.
мой вопрос заключается в том, как перенаправить на другой порт, когда определенное доменное имя приходит к apache (в этом случае, «mydomain.com»)?
13 ответов:
после внесения этих изменений добавьте необходимые модули и перезапустите apache
Я решил эту проблему с помощью следующего кода:
Я хотел сделать именно это, чтобы я мог получить доступ к Дженкинсу из корневого домена.
я обнаружил, что мне пришлось отключить сайт по умолчанию, чтобы заставить это работать. Вот именно то, что я сделал.
и вставьте это в файл:
Далее необходимо включить / отключить соответствующие сайты:
надеюсь, что это поможет кому-то.
выяснил это методом проб и ошибок. Если в конфигурации указано имя сервера, то директива VirtualHost должна будет сделать то же самое. В следующем примере, awesome.example.com и amazing.example.com оба будут перенаправлены на какую-то локальную службу, работающую на порту 4567.
Я знаю, что это не совсем ответ на вопрос, но я помещаю его здесь, потому что это лучший результат поиска для переадресации портов Apache. Поэтому я думаю, что это поможет кому-то когда-нибудь.
вы должны убедиться, что прокси включен на сервере. Это можно сделать с помощью следующих команд:
Если вам не нужно использовать прокси для JBoss и mydomain.com:8080 можно «выставить» миру, то я бы это сделал.
это может быть старый вопрос, но вот что я сделал:
объяснение: слушайте на всех запросах к порту 80 локальной машины. Если бы я попросил» http://something.com/somethingorother «, перешлите запрос на » http://localhost:8080/somethingorother «. Это должно работать для внешнего посетителя, потому что, согласно документам, он сопоставляет удаленный запрос с пространством локального сервера.
Я запускаю Apache 2.4.6-2ubuntu2. 2, поэтому я не уверен, как «-2ubuntu2. 2» влияет на более широкую применимость этого ответа.
после внесения этих изменений добавьте необходимые модули и перезапустите apache
просто используйте обратный прокси в конфигурации apache (напрямую):
Apache поддерживает виртуальные хосты на основе имен и IP. Похоже, вы используете оба, что, вероятно, не то, что вам нужно.
Я думаю, что вы на самом деле пытаетесь установить виртуальный хостинг на основе имени, и для этого вам не нужно указывать IP-адрес.
попробуйте привязать ко всем IP-адресам, если вы действительно не хотитевиртуальный хостинг на основе ip. Это может быть так, если сервер имеет несколько IP-адресов, а вы хотите обслуживать разные сайты по разным адресам. Наиболее распространенная настройка-это (я бы предположил) виртуальные хосты на основе имен.
все это отличные идеи для доступа к портам через доменные имена на виртуальных серверах. Не забудьте, однако, включить виртуальные серверы; это может быть прокомментировано:
мы запускаем WSGI с сервером Apache в домене sxxxx.com и сервер golang, работающий на порту 6800. Некоторые брандмауэры, похоже, блокируют доменные имена с портами. Это было наше решение:
мой apache слушает 2 разных порта,
я использую 80, когда мне нужен прозрачный URL-адрес и не ставлю порт после URL-адреса полезно для сервисов google, которые не позволяют локальный url?
но я использую 8080 для внутренней разработки, где я использую порт в качестве ссылки для «среды разработки»
Это тоже работает в ISPConfig. В списке веб-сайтов войдите в домен, перейдите на вкладку Параметры, добавьте следующие строки:;
затем перейдите на сайт и wolaa:) это тоже работает протокол HTTPS.
Настройка временного и постоянного редиректа в Apache
HTTP-перенаправление (или редирект) – это способ направить один домен или адрес на другой. Существует несколько видов перенаправления, каждый из которых по-разному воспринимается клиентским браузером. Самые распространённые виды – это временный и постоянный редирект.
Временный редирект используется в случае если контент, доступный по одному URL-адресу, нужно временно обслуживать из другого каталога. К примеру, если сайт находится на обслуживании, вы можете перенаправить запросы к домену на пользовательскую страницу ошибок, где посетители смогут узнать, когда сайт будет доступен.
Постоянный редирект сообщает браузеру о том, что старый адрес больше не доступен, а контент обслуживается по другой ссылке. Такой редирект полезен при смене доменного имени.
Чтобы создать временный редирект в Apache, добавьте в виртуальный хост такую строку:
Redirect /oldlocation http://www.newdomain.com/newlocation
Чтобы настроить постоянный редирект, добавьте в файл виртуального хоста:
Redirect permanent /oldlocation http://www.newdomain.com/newlocation
В руководстве вы найдёте более подробное описание настройки каждого вида перенаправления и несколько полезных примеров.
Требования
Простая настройка редиректа
Чтобы настроить простой редирект одной страницы в Apache, можно использовать директиву Redirect, которая входит в модуль mod_alias. Модуль включен в Apache по умолчанию. Директиве нужно иметь минимум два аргумента: старый URL-адрес и новый URL-адрес. С её помощью можно настроить как временное, так и постоянное перенаправление.
Чтобы настроить простое временное перенаправление, добавьте следующие строки в конфигурации сервера:
Теперь браузер будет направлять все запросы к www.domain1.com на домен www.domain2.com. Однако такое решение работает только с одностраничными сайтами.
Редирект объемных сайтов настраивается иначе. Для этого используется директива RedirectMatch, которая с помощью регулярных выражений может указывать целый каталог вместо одного файла.
К примеру, чтобы временно перенаправить все страницы домена www.domain1.com на www.domain2.com, нужно добавить в файл:
По умолчанию директивы Redirect и RedirectMatch устанавливают временный редирект. Чтобы с их помощью настроить постоянный редирект, нужно добавить в настройки опцию permanent:
Redirect permanent / http://www.domain2.com
RedirectMatch permanent ^/(.*)$ http://www.domain2.com/$1
Более гибкую настройку редиректа предоставляет модуль mod_rewrite, но его использование выходит за рамки данного руководства.
Пример 1: переход на другой домен
Предположим, у вас есть сайт, который пользуется популярностью, но в какой-то момент у вас возникла необходимость сменить его домен. Конечно, вы не можете просто переместить контент на новый домен, а старый забросить: так вы потеряете своих посетителей. Кроме того, ссылки на ваш сайт, расположенные на других сайтах, перестанут работать, если вы просто перенесёте контент на новый домен и не оставите никакой информации о его новом местонахождении. Все это приведёт к снижению трафика. Как переместить контент сайта на новый домен и не потерять аудиторию?
В таком случае нужно настроить редирект со старого домена (например, domain1.com) на новый (domain2.com). Чтобы навсегда сменить доменное имя сайта, используйте постоянный редирект. Благодаря этому браузер сможет перенаправлять поступающий трафик на новый домен.
Итак, предположим, что на данный момент сайт обслуживается по домену domain1.com, а его виртуальный хост находится в /etc/apache2/sites-available/domain1.com.conf:
Виртуальный хост для нового домена сайта, /etc/apache2/sites-available/domain2.com.conf, должен выглядеть так:
Теперь измените настройки виртуального хоста domain1.com и добавьте в них постоянный редирект на domain2.com:
В данном случае используется директива RedirectMatch, а не Redirect, поскольку сайт состоит из нескольких страниц. Регулярное выражение ^/(.*)$ совпадает с любым текстом, идущим в URL-адресе после /. Таким образом, http://domain1.com/index.html будет перенаправляться на http://domain2.com/index.html.
Чтобы настроить постоянный редирект, нужно просто добавить опцию permanent в директиву RedirectMatch.
Примечание: После изменения виртуального хоста нужно перезапустить Apache, чтобы обновить настройки:
systemctl restart apache2
Пример 2: перенаправление страницы
В некоторых ситуациях возникает необходимость изменить название уже опубликованной страницы. Если вы просто измените название (без настройки редиректа), при запросе исходного URL-адреса страницы будет возникать ошибка 404 Not Found. Тогда пользователь, который добавил эту страницу в закладки, не сможет найти её, поскольку он использует устаревшую ссылку. Редирект позволяет устранить эту проблему.
Предположим, на вашем сайте есть две отдельные страницы для товаров и услуг, products.html и services.html соответственно, и вы решили объединить эти страницы в одну, offers.html. Чтобы не потерять трафик, нужно настроить редирект products.html и services.html на offers.html.
К примеру, исходный виртуальный хост сайта выглядит так:
Чтобы перенаправить эти две страницы на новую страницу, достаточно добавить в файл две директивы Redirect:
Директива Redirect принимает исходный адрес страницы, которую нужно перенаправить, а затем адрес новой страницы. Опция permanent обеспечит постоянный редирект. Вы можете использовать неограниченное количество директив Redirect в виртуальном хосте, чтобы перенаправить трафик на новые страницы сайта.
Заключение
Теперь вы умеете перенаправлять запросы пользователей. При настройке перенаправления будьте внимательны: неправильное использование временных редиректов может повредить ваш поисковый рейтинг.
Редирект HTTP применяется также для обеспечения SSL-шифрования трафика (редирект http на https) и добавления префикса www к домену сайта.
Apache Forwarding — проброска портов веб-сервера
Что такое Forwarding
Чтобы понимать, что такое Forwarding и для чего это нужно, вспомним как устроено подключение большинства домашних компьютеров. Обычно у большинства из нас дома установлен роутер, к которому подключён кабель Интернет-провайдера. От этого роутера наши домашние устройства — компьютеры, телефоны, планшеты, умные телевизоры и другие — подключаются к Интернету через Wi-Fi или кабель. То есть у нас дома функционирует локальная сеть, в которой у каждого из устройств есть свой локальный (серый) IP адрес.
Представим, что на одном из компьютеров вы установили и настроили веб-сервер Apache. И вы хотите, чтобы к этому веб-серверу можно было подключаться из Интернета. Самый простой способ это сделать — набрать в адресной строке внешний IP адрес.
Кстати, вот вы сидите за компьютером, который через роутер подключён к Интернету, у меня к вам вопрос, какой внешний IP адрес у компьютера? Вы можете зайти на один из многочисленных сервисов показа вашего IP адреса, но суть в том, что любой ответ будет неправильным. Дело в том, что у вашего компьютера, который подключён к Интернету через роутер, вообще нет внешнего IP! Этот внешний IP есть только у вашего роутера (и то не всегда — об этом в этой же статье, но позже).
Если вашему компьютеру нужно выйти в Интернет, то он по локальной сети обращается к роутеру, роутер для него делает запрос, и затем также по локальной сети отправляет полученный ответ. То есть роутер выходит в Интернет, а ваш компьютер — нет. У роутера есть внешний IP адрес, а у вашего компьютера — нет.
Возвращаемся к нашей ситуации — мы хотим, чтобы наш веб-сервер был доступен из Глобальной сети (из Интернета) — как мы все знаем, в глобальной сети компьютеры обмениваются данными друг с другом на основе адресации по IP. Но у нашего компьютера вообще нет внешнего IP — есть только локальный, который для Интернета является немаршрутизируемым, то есть никто никакие данные на наш локальный IP адрес не сможет прислать из глобальной сети.
Вот именно эту проблему и решает Forwarding, который ещё называют «переадресацией» портов, «проброской портов», «перенаправлением портов».
Для чего нужна проброска портов. Что делает Forwarding
Перенаправление портов заключается в следующем: на роутере (или на другом сетевом устройстве) устанавливается правило, суть которого примерно в следующем
«трафик, пришедший на порт 80 отправить на IP адрес 192.168.1.30 на порт 80».
В качестве IP адреса может быть указан локальный, серый IP. Пример такого адреса выше (192.168.1.30). В качестве исходного порта и порта назначения можно указывать любые порты, они не обязательно должны быть одинаковыми.
В результате получается, что можно сделать HTTP запрос к роутеру, указав его глобальный IP, роутер получит этот запрос и отправит его веб-серверу в локальной сети. Благодаря переадресации портов веб-сервер без внешнего IP оказывается доступным за пределами локальной сети.
Перенаправление портов для Apache
Как бы это не было странно, но именно в настройках Apache ничего для перенаправления портов делать не надо.
Настройка роутера требует добавления одной записи, в которой нужно указать локальный IP адрес, на который будет переадресовываться пришедший запрос. По умолчанию в роутерах используется DHCP — если коротко, благодаря этому протоколу любое подключившееся к роутеру устройство автоматически получает IP адрес. Это удобно — не нужно делать настройки. Но дело в том, что устройству выдаётся любой не занятый IP в локальной сети. Поэтому у компьютера с веб-сервером может меняться IP адрес при каждом переподключении, в результате, настроенная переадресация портов перестанет работать из-за смены IP веб-сервера.
То есть начать нужно с того, чтобы настроить статичный локальный IP адрес для компьютера. Это можно сделать двумя способами: 1) на компьютере с веб-сервером, 2) в роутере
Для изменения на компьютере, откройте Панель управления → Сеть и Интернет → Центр управления сетями и общим доступом → Изменение параметров адаптера:
Правой кнопкой мыши откройте контекстное меню интересующего вас подключения, найдите там пункт IP версии 4 (TCP/IPv4):
Нажмите Свойства и пропишите нужные параметры в зависимости от настроек вашей сети (Основной шлюз — это IP адрес вашего роутера):
Некоторые роутеры поддерживают выдачу статичных IP адресов определённым устройствам сети — они их запоминают на основе MAC-адреса устройства. У всех роутеров это настраивается чуть по-разному, но обычно нужно искать в настройках DHCP. Некоторые роутеры не поддерживают эту возможность.
Переадресация портов для Apache в роутере
Теперь, когда компьютеру с веб-сервером назначен постоянный локальный IP, нужно добавить правило перенаправления портов. В роутерах это может называться Forwarding, «Перенаправление портов», «Переадресация портов» и т. д. Иногда в роутерах имеются заготовленные настройки и можно выбрать из списка название службы, для которой вы хотите сделать переброску портов. Для Apache выберите службу HTTP:
В качестве портов назначения и перенаправления запроса укажите 80. На скриншоте видно, что можно установить не один порт, а диапазон портов. Если вы хотите настроить только один порт, то укажите одно и то же значение в качестве начала диапазона и конца диапазона.
В качестве Local (локальный IP, адрес, куда будет перенаправлен запрос) укажите IP веб-сервера. External (внешний IP) указывать не нужно.
Активируйте созданное правило перенаправления портов.
Теперь все запросы, пришедшие на 80 порт роутера, будут перенаправлены на указанный IP адрес и указанный порт. Аналогичные настройки можно сделать для любых служб — для FTP сервера, SSH и так далее. То есть к этим службам появиться доступ из внешней сети.
Делая такие настройки, всегда помните о безопасности. Теперь служба становится доступной из глобальной сети, и хакеры могут атаковать её.
Когда не нужен Forwarding
Если у вас кабель Интернет-провайдера напрямую подключается к компьютеру с веб-сервером, то вам не нужен форвардинг. При аренде VPS сервера также не нужен форвардинг, так как у таких серверов прямой (белый) IP адрес.
Если Интернет провайдер использует NAT
NAT — это технология, которая позволяет множеству устройств выходить в Интернет используя один и тот же IP адрес. Кстати, в вашей локальной сети, в которой имеется роутер, уже применяется NAT — именно благодаря этому все ваши устройства могут выходить в Глобальную сеть и не нужно каждому из них иметь внешний IP.
Как вы понимаете, это часто используемая технология. Возможно, вы много лет ею пользуетесь, даже не зная про неё. Она действительно приносит очень много пользы, но у неё есть недостаток — она позволяет делать подключения «в одну сторону». То есть если ваш компьютер инициализировал подключение к Интернету, то он отправит его роутеру, роутер сделает две вещи: 1) запомнит, что запрос пришёл с определённого устройства и 2) отправить этот запрос в Интернет. Когда придёт ответ, роутер всё ещё «помнит», что этот запрос был сделан для определённого устройства в локальной сети, и отправит ответ именно этому устройству. И так происходит каждый раз.
Но вот если на роутер придёт новый HTTP запрос из Глобальной сети (не ответ на запрос, а именно новый запрос), то роутер банально не знает, для кого в локальной сети он предназначен (если не настроена переадресация портов). Поэтому с этим поступившим запросом роутер ничего не делает. Мы уже рассмотрели эту проблему и даже нашли решение — переадресация портов. Но многие Интернет-провайдеры также используют NAT. И работа происходит по точно такому же принципу — ваши HTTP запросы уходят в Глобальную сеть и вы без проблем получаете HTTP ответы, но новые запросы из Интернета к вашему компьютеру не могут пройти через NAT.
И поэтому даже если вы на своём роутере правильно настроили форвардинг портов, может получиться так, что вы всё равно не сможете подключится к нему из Интернета. Выход из такой ситуации только один — аренда белого IP у Интернет-провайдера.
Настройка временного и постоянного перенаправления Apache и Nginx
Что такое HTTP-перенаправление?
HTTP-перенаправление (или URL редирект) – это техника переадресации одного домена или адреса на другой. Существует множество вариантов применения перенаправления.
Пользователи, которые создают контент и администрируют серверы, часто сталкиваются с необходимостью перенаправлять трафик из одной точки в другую. Данное руководство рассматривает различные случаи использования этих техник, а также демонстрирует способы их применения.
Зачем серверу перенаправление?
Редирект используется всякий раз, когда сайту необходимо, чтобы пользователи, создающие запросы, были направлены на другой адрес. Существует множество ситуаций, в которых редирект крайне необходим.
Перемещение на другой домен
К примеру, вы запустили сайт, а теперь хотели бы изменить свой домен; в такой ситуации не следует просто отказываться от старого домена, лучше прибегнуть к использованию перенаправления.
В противном случае все закладки и ссылки на ваш сайт, расположенные на других страницах сети Интернет, перестанут работать, поскольку контент исчез без каких-либо указаний, как браузеру искать его новое местонахождение.
Изменение домена без перенаправления не только приведёт к потере трафика от предыдущих посетителей, но и может серьёзно повлиять на доверие к сайту.
Расширение на похожие домены
Часто владельцы сайтов регистрируют несколько вариаций доменного имени, чтобы выиграть на запросах адресов, похожих на основной домен.
К примеру, если у вас есть домен supersite.com, вы могли бы также приобрести домены вроде supersite.net и supersite.org, а затем просто перенаправить оба похожих домена на основной.
Это позволяет получить пользователей, которые пытаются попасть на ваш сайт по неправильному адресу. Также это исключает вероятность того, что другой сайт будет использовать похожий домен и таким образом отнимет у вас трафик.
Изменение имени страницы
Иногда возникает необходимость изменять имена ранее опубликованных страниц сайта, на которые уже идёт трафик. Как правило, это приводит к 404 Not Found (или другой ошибке, в зависимости от настроек безопасности сервера). Но этого можно избежать, перенаправив пользователей на другую страницу, которая содержит искомый контент.
Форсирование SSL-соединений
Простой и достаточно распространённый способ перенаправления – это направление всего трафика на использование SSL вместо стандартного HTTP.
Таким образом можно перенаправить все запросы с http://www.mysite.com на адрес https://www.mysite.com и тем самым повысить безопасность соединений.
Методы перенаправления
Существует несколько различных методов перенаправления URL-адресов, каждый из которых означает какое-то изменение для браузера клиента.
Самыми распространёнными являются временные перенаправления 302 и постоянные перенаправления 301.
Временный редирект
Временный редирект (англ. Temporary redirect) необходим в том случае, если контент определённого URL-адреса должен временно обслуживаться в другой точке.
К примеру, его можно использовать, чтобы перенаправить все страницы домена к странице, которая сообщит посетителям сайта, что сайт временно недоступен и вернётся в сеть в ближайшее время.
Временный редирект сообщает браузеру, что контент временно находится в другой точке сети, но со временем вернётся к исходному URL-адресу.
Постоянный редирект
Постоянный редирект (англ. Permanent redirect) полезен в случае, если контент был перемещён в другое место навсегда.
К примеру, он необходим при изменении доменного имени или URL-адреса, так как старый адрес не будет поддерживаться.
Этот редирект сообщает браузеру, что он более не должен обращаться к старому URL-адресу, но должен обновить свои данные и всегда обращаться к новому адресу.
Перенаправление Apache
Для перенаправления трафика Apache использует несколько инструментов. Самый простой из них – это модуль mod_alias. Существует также более сложный модуль mod_rewrite, позволяющий настраивать более обширные редиректы.
Директива Redirect
Apache позволяет выполнять простые редиректы для одной страницы при помощи директивы Redirect, которая входит в модуль mod_alias. Эта директива требует как минимум два аргумента – это старый и новый URL-адреса.
Простейшая форма применения этой директивы в конфигурациях сервера выглядит так:
Этот редирект направляет все запросы к www.domain1.com на домен www.domain2.com. Директива Redirect может использоваться только для перенаправления одной страницы, а не всего сайта.
По умолчанию Redirect устанавливает временный редирект (или 302).
Использовать Redirect для постоянного редиректа можно двумя способами:
Redirect 301 /oldlocation http://www.domain2.com/newlocation
Redirect permanent /oldlocation http://www.domain2.com/newlocation
Директива RedirectMatch
Чтобы создать перенаправление для нескольких страниц (или для всего сайта), используйте директиву RedirectMatch, которая позволяет задать каталог с шаблонами при помощи регулярных выражений. Таким образом можно перенаправлять не только отдельные файлы но и целые каталоги.
RedirectMatch ищет соответствия шаблонам в скобках, а затем ссылается на найденный текст при помощи”$1″, где 1 – это первая группа любых символов, заданных ранее при помощи (.*). Следующие группы символов нумеруются последовательно.
К примеру, чтобы перенаправлять каждый запрос к каталогу /images на поддомен images.example.com, можно использовать:
RedirectMatch ^/images/(.*)$ http://images.example.com/$1
Как и при использовании директивы Redirect, можно указать тип редиректа, указав соответствующий код перед правилами URL-а.
Использование mod_rewrite
Наиболее гибким и наиболее сложным инструментом для перенаправления является модуль mod_rewrite.
К сожалению, описание этого инструмента настолько обширно, что его невозможно охватить в данной статье. Подробную информацию о модуле mod_rewrite можно найти в этом руководстве.
Перенаправление Nginx
Перенаправление на сервере Nginx гораздо проще. В большинстве случаев для перенаправления контента можно создать блок server.
Например, чтобы перенаправить запросы с domain1.com на domain2.com, можно создать следующий блок:
Директива return выполняет подстановку URL-адреса, а затем возвращает заданный код статуса и указанный URL.
В данном случае директива обращается к переменной “$scheme” для использования любой схемы, заданной в исходном запросе (HTTP или HTTPS). Затем она возвращает код постоянного редиректа 301 и новый URL-адрес.
Для обработки перенаправления каталога на отдельный поддомен можно использовать директиву rewrite, аналогичную перенаправлению каталогов на сервере Apache:
rewrite ^/images/(.*)$ http://images.example.com/$1 redirect;
Данная директива, расположенная в блоке server, создаст временный редирект запросов к каталогу images на поддомен images.example.com.
Для постоянного редиректа замените redirect в конце строки на permanent.
Итоги
Убедитесь, что выбрали правильный тип перенаправления, так как неправильное использование временных редиректов может отрицательно повлиять на рейтинти поисковиков.
Разумное использование перенаправления позволит вам изменять структуру сайта по мере необходимости и тем самым сделать свой сайт гораздо продуктивнее. Более подробную информацию о перенаправлении Apache и Nginx можно найти в официальной документации этих серверов.