Использование DNS для перенаправления на другой URL-адрес с помощью пути

Я пытаюсь перенаправить домен другому через DNS.

Я знаю, что использование IN CNAME возможно.

www.proof.com IN CNAME www.proof-two.com.

Мне нужно перенаправить путь. Когда кто-то набирает www.proof.com, он должен отнести их к www.proof-two.com/path/index.htm

Я знаю, что это можно сделать с помощью средств веб-сервера, но мне нужно перенаправление DNS.

Возможно ли это?

Ответ 1

Нет, то, что вы просите, невозможно. DNS - это система разрешения имен и ничего не знает о HTTP.

Ответ 2

если вы используете AWS, перенаправление, например

mail.foo.com --> mail.google.com/a/foo.com

можно настроить следующим образом:

  • в s3, создайте пустое ведро "mail.foo.com"
  • в разделе Свойства → Статический хостинг веб-сайтов, установите "перенаправить все запросы на: mail.google.com/a/foo.com"
  • в route53, создайте запись A "mail.foo.com"
  • включить "псевдоним" и установить целевой псевдоним в "mail.foo.com" bucket

не чистое решение DNS, но оно работает;)

Но помните, что перенаправление пропускает все параметры URL, например:...? param1 = value1 & param2 = value2

Ответ 3

Я понимаю, что это старый поток, но FWIW, если кто-то ищет способ сделать это.

Пока dns не понимает часть пути URL-адреса, он будет понимать субдомены, поэтому вместо:

www.proof.com В CNAME www.proof-two.com/path/index.htm

Вы можете использовать:

www.proof.com В CNAME proof.proof-two.com

затем перейдите туда, где у вас есть сайт proof-two.com, и установите для него точку proof.proof-two.com на www.proof-two.com/path/index.htm.

~ всегда есть более чем один способ обрезать кошку

Ответ 4

Вы можете использовать http://redirect.center/. Это легко:

www.proof.com В CNAME www.proof-two.com.opts-uri.redirect.center.

Ответ 5

Чтобы ответить на исходный вопрос, нет, то, что вы хотите, невозможно, используя только DNS (как все заявили). В дополнение ко всему, что уже упоминалось, другой вариант заключается в использовании службы перенаправления URL-адресов. Эти типы служб могут позволить вам настроить различные типы перенаправления URL в зависимости от ваших потребностей. Например:

  • Переслать доменную вершину на www. субдомен или наоборот
  • Переслать коллекцию доменных имен в один пункт назначения (полезно для пересылки доменных орфографических ошибок, старых имен компаний и т.д.).
  • Переслать конкретные имена доменов на страницы с глубокой связью (например, что хочет OP)

Служба, которая делает это EasyRedir. Полное раскрытие: я разработал EasyRedir. Конечно, есть и другие варианты, поэтому я призываю вас осмотреться.

Ответ 6

Изменить

Кажется, что мой провайдер (OVH), который разрешает такую ​​перенаправление в своей инфраструктуре.

Смотрите: https://www.ovh.com/fr/g1339.redirection-nom-de-domaine

Я сохраняю ответ ниже для архивирования, но он не содержит никакой значимой информации.

Оригинальный ответ

Я сделал это, используя запись TXT.

Чтобы перенаправить foo.bar.com в foo2.bar.com/path, просто добавьте foo IN TXT "1|foo2.bar.com/path" в зону DNS bar.com.

Он также поддерживает пути и параметры URL. Поэтому, если вы попытаетесь получить доступ к foo.bar.com/hello?foo=bar, вы будете перенаправлены на foo2.bar.com/path/hello?foo=bar.

Ответ 7

DNS не перенаправляет часть пути URL-адреса, поэтому это будет невозможно.

Добавление

www.proof.com IN CNAME www.proof-two.com

будет направлять доступ к www.proof.com на www.proof-two.com, где вам нужно будет использовать конфигурацию веб-сервера, чтобы направлять пользователей на соответствующую страницу.

Ответ 8

Действительно легко с redirect.center

Если вы хотите создать CNAME как:

www.proof.com В CNAME www.proof-two.com/path/index.htm

используя redirect.center, ваш CNAME выглядит как канонический режим:

www.proof.com В CNAME www.proof-two.com.opts-slash.path.opts-slash.index.htm.redirect.center.

Теперь, если вы хотите перенаправить на https-сайт, вы можете добавить эту опцию:

www.proof.com В CNAME www.proof-two.com.opts-slash.path.opts-slash.index.htm.opts-https.redirect.center.

Теперь вы можете создать CNAME с каноническим режимом с косой чертой на странице своей судьбы.

Ответ 9

контакт @contacto и @adlawson

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

Полное раскрытие: я использую www.dnsmadeeasy.com для управления моим DNS для вашего пробега, может отличаться от GoDaddy или других регистраторов ванили.

Мое решение для DNS:

Используйте запись перенаправления HTTP. Я указываю url http://techshiftacademy.com на битовую ссылку, которая имеет базовую регистрацию для класса Python.

Ответ 10

Я предполагаю, что у вас есть такой сценарий: у вас есть уникальный веб-сервер, на котором размещаются различные веб-сайты, каждый из которых должен быть представлен разделенным доменом:

поэтому page1.html должен обслуживаться www.customer1.com и т.д.

  • создать субдомен внутри сервера example.com dns (ваш веб-сервер):

    customer1.example.com

  • в настройках вашего виртуального сервера apache сопоставьте субдомен с каталогом, который содержит веб-сайт для вашего клиента # 1, например:

<VirtualHost *:80> SetEnv PAGE_ID "customer1" ServerName customer1.example.com ServerAlias www.customer1.com DocumentRoot /your/local/path/webserver/customer1 </VirtualHost> обратите внимание на значение для "ServerAlias", это важно для следующего шага -

вы должны иметь возможность перейти на свой сайт customer1, просмотрев:

customer1.example.com

  1. В настройках DNS для customer1.com вы должны сделать запись CNAME:

    CNAME = WWW МЕСТОПОЛОЖЕНИЕ = customer1.example.com

Теперь вы можете использовать: www.customer1.com.

Ответ 11

Мое решение этой проблемы было довольно простым и прямым. Все, что вам нужно - это сервер IIS, работающий внутри домена.

Настройте CNAME в DNS, чтобы указать на сервер IIS, используя имена узлов в IIS для разрешения нескольких сайтов на одном сервере IIS. Я использую один и тот же сервер IIS для обработки нескольких поддоменов на внешних сайтах.

Затем в перенастройке настройки IIS для этого сайта, чтобы перейти на ваш сайт/путь за пределами сайта, в моем случае это был наш хостинг-каталог, в который я хотел попасть в каталог .ourdomain.com. Отсюда вся настройка выполняется в IIS. Обязательно включите анонимную аутентификацию, чтобы трафик не блокировался.

Ответ 12

Связанная работа завершилась следующим образом:

Проблема:

http://a.com/p1/p2.html следует перейти к http://b.com/p1/p2.html
сегодня, но позже, когда вы настраиваете вручную/автоматически, то же самое http://a.com/p1/p2.html следует перейти к http://C.com/p1/p2.html

Ответы:

DNS - преобразует имя в IP-адрес

Хотя он может делать много переадресаций, всегда выводить IP-адрес DNS не понимает путь или часть протокола URL, понимает только часть домена, то есть, a.com только преобразуется в IP-адрес, поэтому, когда вы нажимаете http://a.com/p1/p2.html можно преобразовать в http://152.132.121.11/p1/p2.html если вы настроите неправильно в DNS, тогда вы получите 152.132.121.11 (не http://152.132.121.11/p1/p2.html), поэтому вы получите примерно 400-секундную ошибку (400, 403 и т.д.)

Перенаправление - это http://a.com/p1/p2.html можно преобразовать в http://b.com/p1/p2.html

Все методы, такие как GET, POST, могут работать, если задействованы какие-либо заголовки и тела, но есть веб-сервер, это может быть точкой отказа, поэтому масштабирование и доступность будут ключевыми.

Если вы находитесь на AWS, маршрутизация 53 → Шлюз API возможен, хотя пользовательские домены, внутренне использующие Cloud front

Возможно с помощью Amazon Certification Manager, пользовательских доменов AWS Gateway и Route53, обратите внимание на ограничение us-east-1 на ACM

Надеюсь, что кто-то поможет

Ответ 13

Пока, как утверждают почти все, невозможно использовать только DNS. В качестве обходного пути я бы предложил попробовать NGINX (http://nginx.org/en/docs/http/request_processing.html).

TL; DR - В NGINX вы можете создать несколько виртуальных серверов, которые могут перенаправить ваш запрос на основе имени сервера.

Ex. http://first.my-server.com перенаправить на место A и http://second.my-server.com перенаправить на место B, в то время как оба имеют общий физический сервер.

Ответ 14

Вы можете использовать htaccess rewrite mod, переписать в подпапку, если пользователь запрашивает один конкретный домен, а не другой.

Ответ 15

Все уже заявили об этом, и я просто хочу дать вам другой вариант службы, которая может вам помочь. www.301redirect.it - это бесплатный сервис, который может перенаправить ваш домен (с подстановочным знаком) на любой URL-адрес назначения.

Я хочу добавить раскрытие: я разработчик этой службы, и есть другие варианты.

Ответ 16

Конечно, можно перенаправить со следующим трюком:

Создать новую стандартную основную зону Назовите его так же, как фиктивный URL-адрес, который вы хотите перенаправить на Убедитесь, что это фиктивное имя отличается от любого имени DNS AD Создать запись со следующими записями:

пустым................................................... IP-адр-2

WWW..................................................... IP-адр-2

То, что мы имеем здесь, - это перенаправление, по существу. Действительный URL-адрес будет разрешаться на основе существующей DNS-зоны DNS. Фиксирующий URL-адрес будет перенаправлен на ip-addr-2. Важно то, что имя этой записи пустое, поэтому оно будет падать до следующей записи в записи и перенаправлять на ip-addr-2