Есть ли способ перенаправить один домен на другой через настройки DNS, сохраняя информацию о пути?

Например, мой домен example.com, и когда кто-то переходит к example.com/sample/page.htm, я хочу, чтобы он перенаправлялся на test.com/sample/page.htm.

Я знаю, что это, вероятно, легко можно сделать, используя файл .htaccess или страницу 404. Тем не менее, я ищу решение, которое не требует от меня, чтобы у моего провайдера DNS были какие-либо файлы для меня.

Я хочу сделать это только с настройками DNS, например:

  • Записи CNAME
  • Записи
  • 301 переадресация
  • (любые другие настройки DNS, которые мне не хватает)

Есть ли способ сделать это?

26 голосов | спросил Senseful 22 J000000Thursday10 2010, 03:06:41

4 ответа


12

Вы можете разрешить example.com/test.com на тот же веб-сервер (IP) через dns (CNAME, если хотите), и это сработает.

Если вы хотите сделать это на основе каждого пути, чем нет. DNS не знает таких вещей, как URL. DNS просто переводит хост-часть url (example.com) в IP-адрес. Веб-сервер отвечает за выяснение того, что (или где) должен решить URL. Я считаю, что вам нужно будет сделать это на уровне веб-сервера (http).

ответил Thomas 22 J000000Thursday10 2010, 03:18:52
8

Как уже отмечалось, это не может быть сделано полностью с DNS. Однако, если у вас есть DNS для example.com, обратитесь к тому же серверу, что и test.com, очень просто настроить Apache для выполнения того, что вы хотите сделать. Просто добавьте следующее:

<VirtualHost *:80>
  ServerName example.com
  Redirect permanent / http://test.com/
</VirtualHost>

Это переписывает любую входящую ссылку на example.com на ссылку для test.com, сохраняя путь.

Кроме того, вашему провайдеру DNS не нужно размещать какие-либо файлы для вас, так как это зависит только от веб-сервера, на котором вы уже запускаете test.com.

ответил Kris 23 J000000Friday10 2010, 18:45:35
3

Вы не можете сделать это только через DNS. 301 переадресации не являются DNS. Это веб-сервер.

Что вы можете сделать, это указать ваши записи в example.com.com на тот же сервер, что и test.com, и настроить example.com как домен псевдонима для test.com.

ответил intlect 22 J000000Thursday10 2010, 03:34:03
3

Вот точное правило .htaccess, которое я использую для перенаправления всех запросов от www.mydomain.com на mydomain.com (так как короче мой канонический URL):

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

Это достаточно легко изменить для перенаправления с foo.com на foobar.com, при сохранении запроса клиент просто перенаправляет 301 в соответствующий домен.

Однако вы не можете «просто» с DNS, как говорили другие, DNS-серверы просто разрешают FQDN по IP-адресам.

ответил Tim Post 23 J000000Friday10 2010, 19:39:07

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132