2009-06-16 1 views
1

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

Сообщение на форуме 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") End If

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

ответ

1

Вам нужно сделать вложенный отдельный Application (в панели управления DiscountASP.NET в)

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

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

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

+0

Спасибо за предложение. Мне пришлось несколько дней выходить из города. Я попробую на следующей неделе. Еще раз спасибо. – Rick

+0

Спасибо за совет. Я создал отдельное приложение и зарегистрировал HttpModule в IIS, который обрабатывал перенаправление. Я все еще не мог заставить все работать как два независимых сайта, на которые я надеялся, поэтому я просто открыл новую учетную запись для второго сайта. Но я учился немного больше, так что это всегда хорошо. – Rick

0

Менеджер маршрутов в MVC должен отображать URL-адреса контроллеров. Контроллеры - это код, и местоположение не имеет значения. Я не знаю, как использовать Routing для перенаправления, что вы ищете. 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, и они могут конфликтовать и создавать раздражающие проблемы. Но сначала вы должны сначала проверить свою панель управления, чтобы указать новый домен в другой папке. Запуск нескольких сайтов из общей учетной записи хостинга происходит с потенциально большим набором головных болей, поэтому я желаю вам удачи.

+0

Согласно технической поддержке discountasp.net, «вы можете использовать аддон корневого домена, чтобы указать дополнительные домены в корень вашей размещенной учетной записи, а затем программно перенаправить эти домены в подкаталог». – Rick

0

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

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

+0

Я связался со своей технической поддержкой, и они указывают, что вам необходимо программно перенаправить эти домены в подкаталог. Их примеры показывают, как перенаправить использование классических ASP.Net и Response.Redirect(). Я также разместил их на форуме без ответа ..... – Rick

Смежные вопросы