Я нашел несколько похожих ответов на этот вопрос, но надеялся, что кто-то сможет прояснить, если я не понимаю. Это размещено на IIS 7 в ASP.NET
На моем сайте есть корневой и www домены, ведущие на мою домашнюю страницу:
У меня также настроено перенаправление URL-адресов для моих пользователей:
Все они работают отлично, но я хотел бы разрешить своим пользователям регистрировать свои собственные доменные имена, чтобы они указывали на их собственные сайты. Они будут контролировать эти имена, и я дам руководство по их настройке. Я почти уверен, что смогу понять, как заставить CNAME работать для субдомена www, но я бы хотел, чтобы корневой URL также работал. Это возможно?
Я хотел бы:
Я мог бы использовать маскировку домена, но предпочел бы этого не делать, поскольку я бы хотел, чтобы домены работали как настоящие доменные имена.
Можно ли это сделать каким-либо образом через DNS и / или кодирование? Спасибо! :)
Если я вас правильно понимаю, вы не можете использовать запись CNAME так, как вы просите. Чтобы выполнить то, что вы пытаетесь сделать, вам нужно будет ввести записи A, указывающие на некоторые веб-серверы, которые будут выполнять перенаправления http за вас. Godaddy может перенаправить такой домен за вас. В документации это называется «пересылка без маскировки»:
Оставляю здесь ответ для всех, кто заинтересован, так как, похоже, у меня это работает!
Что касается доменного имени пользователя, я проинструктирую их указать запись A на IP-адрес моего веб-сайта. Я сделал это через @ host, но думаю, что это можно сделать и с * wildcard host.
Затем в моем файле Web.config я создал эту запись для модуля перезаписи IIS 7:
<rule name="UserDomain" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTP_HOST}" negate="true" pattern="^(?:www\.)?example\.com$" />
</conditions>
<action type="Redirect" url="http://www.example.com/Page.aspx?d={HTTP_HOST}" />
</rule>
По сути, это правило отрицательного регулярного выражения говорит, что любой домен, который указывает на этот хост, который не домен основного веб-сайта example.com, перенаправьте на Page.aspx и передайте имя домена в строке запроса. Это позволит мне искать в базе данных так же, как мне нужно. Самое приятное в этом то, что это не маскировка домена и не переадресация домена. Это хорошее, чистое, добро DNS с небольшим количеством магии, чтобы заставить его работать.
Все еще нужно немного подправить, но я так рад, что понял это! :)