Как создать субдомены и перенаправить их в ASP.NET? - PullRequest
1 голос
/ 29 декабря 2008

Как мне создать поддомен в ASP.NET? У меня есть несколько ссылок на моей домашней странице (Home.aspx) Пример: Link1 и Link2

Мне нужно создать два субдомена link1.example.com и link2.example.com. и перенаправить к ним. Я буду использовать Response.Redirect для навигации.

Вопросы: Файлы должны находиться в другом каталоге или что-то? Могу ли я протестировать или смоделировать этот пример на локальном хосте?

Буду признателен за любую помощь этому начинающему программисту ASP.NET.

Ответы [ 2 ]

4 голосов
/ 29 декабря 2008

В зависимости от того, что вы на самом деле пытаетесь выполнить с помощью этих перенаправлений, это может быть полезно. Если вы пытаетесь просто обработать несколько поддоменов из одного веб-приложения, вы можете полностью подделать это поведение поддомена вне ASP.NET, используя сервер на базе IIS, на котором размещается одно веб-приложение, с помощью инструмента перезаписи ISAPI, такого как Фильтр перезаписи Ionics Isapi (http://www.codeplex.com/IIRF), при условии, что у вас есть возможность добавить фильтр ISAPI в среду хостинга.

Поскольку фильтр ISAPI обрабатывается до того, как ASP.NET узнает о запросе, вы можете разместить несколько поддоменов (и полных доменов) только в одном веб-приложении. К сожалению, эмуляция перенаправления этого типа во встроенном веб-сервере ASP.NET (Cassini) невозможна, поскольку он не использует ISAPI. Этот метод позволяет вам проверить функциональность ваших окончательных поддоменов, но только в месте окончательного перенаправления; Вы также не можете по-настоящему протестировать исходную карту домена в Cassini, так как файл хостов Windows не разрешает правила с портами.

Если вы настроили свое единственное приложение на наличие страниц, чтобы обрабатывать функциональность всех желаемых поддоменов, вы можете просто перенаправить запрос на поддомен в отдельное приложение в нужном месте. Это может быть просто папка страниц в вашем приложении, которая обрабатывает всю логику вашего нового субдомена. Вот несколько примеров правил перезаписи для Ionics, которые будут отправлять запросы для различных поддоменов в конечное местоположение в вашем единственном веб-проекте:

RewriteCond %{HTTP_Host} ^(?~new-sub-domain.yourdomain.com).*$ [I]
RewriteRule ^(.*)$ http://www.yourdomain.com/new-sub-domain$1 [I,R=302]
RewriteCond %{HTTP_Host} ^(?~another-new-sub-domain.yourdomain.com).*$ [I]
RewriteRule ^(.*)$ http://www.yourdomain.com/another-new-sub-domain$1 [I,R=302]
# '#' is a comment marker in the rewrite files
# [I] at the end means case-insensitive
# [L] at the end  means last rule (sending the request on but hiding the forward from the end user)
# [R] at the end  means an official redirect and can be used instead of [L] (the end user will then see a new request, such as a 301 redirect using [R=301])

Это приведет к тому, что все запросы к новым поддоменам перейдут в каталог в вашем существующем проекте (/ new-sub-domain / и / another-new-sub-domain /, соответственно); это можно изменить, чтобы отправить их туда, куда вы хотите в этом проекте.

Хотя этот подход позволяет размещать несколько поддоменов (и, возможно, несколько полных доменов) из одного приложения, ограничение на перенаправление / перезапись на веб-сервере ASP.NET (Cassini) ограничит вас проверкой функциональности. из этого окончательного местоположения (например, "/new-sub-domain/").

0 голосов
/ 29 декабря 2008

Вам необходимо настроить домены и субдомены у своего провайдера доменов (у которого вы купили доменное имя), а не с вашего веб-сайта ASP.NET.

Локально, вы не можете проверить это, потому что вы можете получить доступ только к http://localhost как к веб-серверу разработчика.

...