ASP.NET MVC, размещенный на DiscountAsp.Net и использующий указатель домена - PullRequest
1 голос
/ 16 июня 2009

Я размещаю веб-сайт на DiscountASP.NET, и у них есть возможность добавить указатель домена для отдельного домена с использованием той же учетной записи хостинга. Таким образом, если исходным сайтом является abc.com, вы можете приобрести указатель домена на xyz.com, и оба изначально указывают на одно и то же корневое местоположение. Использование root для abc.com - это нормально, но когда xyz.com является адресом, я хочу перенаправить в отдельный подкаталог, содержащий код для xyz.com. Где бы я попытался перенаправить xyz.com для ссылки на код подкаталога вместо использования корневого каталога? Я думаю, что обрабатывать его Global.asax, где обычно находится весь код маршрутизации, слишком поздно, так как я хочу, чтобы файл Global.asax каждого сайта обрабатывал их соответствующие сайты независимо.

В сообщении на форуме DiscountAsp.Net для классического ASP обсуждается добавление кода, подобного следующему, к документу по умолчанию.

Если InStr (UCase (Request.ServerVariables ("SERVER_NAME")), UCase ("subdomain1.YourHostedDomainName.com"))> 0 Тогда Response.Redirect ( "/ subdomain1") ElseIf InStr (UCase (Request.ServerVariables ("SERVER_NAME")), UCase ("subdomain2.YourHostedDomainName.com"))>> 0 Тогда Response.Redirect ( "/ subdomain2") ElseIf InStr (UCase (Request.ServerVariables ("SERVER_NAME")), UCase ("subdomain3.YourHostedDomainName.com"))>> 0 Тогда Response.Redirect ( "/ subdomain3 / home.asp") Конец, если

ASP.NET MVC - это мой первый веб-проект, и, насколько я понимаю, все потоки маршрутизации проходят через RegisterRoutes () и набор маршрутов, установленный в Global.asax. Есть идеи?

Ответы [ 3 ]

1 голос
/ 17 июня 2009

Вам нужно сделать подпапку отдельной Application (в панели управления DiscountAsp.net)

Затем попробуйте написать HttpModule, который вызывает Response.Redirect, чтобы перенаправить браузер в подпапку в корневом домене.

Если вы хотите, чтобы ваши пользователи находились на поддомене, я не думаю, что это возможно. Я никогда не использовал ASP .Net MVC, но я предполагаю, что маршруты регистрируются на AppDomain, что означает, что папка для каждого субдомена должна быть отдельной Application. Нет способа (AFAIK) передать выполнение через AppDomain s (Server.Transfer не сделает этого).

Если я ошибаюсь, и это можно сделать без отдельного Application s, создайте HttpModule, который вызывает Server.Transfer при запросах с субдомена (и убедитесь, что ссылки относительно папки представляет поддомен; ~ пути не будут работать).

0 голосов
/ 17 июня 2009

Вы, похоже, пытаетесь запустить два отдельных сайта, один из которых на поддомене.

Я не использую DiscountAsp.Net, но они должны позволить вам создать отдельный веб-сайт, обслуживающий ваш поддомен; обратитесь в службу поддержки.

0 голосов
/ 16 июня 2009

Менеджер маршрутов в MVC предназначен для сопоставления URL-адресов с контроллерами. Контроллеры - это код, а расположение не имеет большого значения. Я не знаю, как использовать маршрутизацию для перенаправления, и это то, что вы ищете. DiscountASP.Net должен иметь способ указать ваш новый домен в другую папку, я бы проверил вашу панель управления для способа сделать это.

Если вы работаете в IIS 7, он, скорее всего, будет использовать заголовки хостов, чтобы выполнить указание за вас. В этой ситуации (IIS 7 или нет) вы должны знать, что, скорее всего, у вас будет веб-сайт на веб-сайте. Если ваш корневой сайт не asp.net, вероятно, все будет проще, если ваш root (abc.com) - это сайт asp.net (звучит так, как будто это не тот вопрос, но это хорошая информация, так что я вам все равно скажу) web.configs будет дополнительным.

- root
|
|- xyz.com
 |
 |- web.config (xyz.com)
|
|- web.config (abc.com)

Имейте в виду, что сначала будет применен файл abc.com web.config, а затем xyz.com, и они могут конфликтовать и создавать раздражающие проблемы. Но сначала вы должны проверить на панели управления способ указать новый домен в другой папке. Запуск нескольких веб-сайтов из учетной записи общего хостинга сопряжен с потенциально большим количеством головной боли, поэтому я желаю вам удачи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...