Как обрабатывать доменное имя в MVC Routing - PullRequest
2 голосов
/ 30 января 2012

Я пытаюсь использовать маршрутизацию для перенаправления моего пользователя на другой URL-адрес, если он входит на мой сайт через IP-адрес.

Или, если возможно, скажите, если возможно, обрабатывать доменное имя путем маршрутизации.Как я могу использовать маршрутизацию для контроллера и для действий, но могу ли я также обрабатывать домен там или нет?

В настоящее время я использую его, как показано ниже, но я не могу обрабатывать домен:

routes.MapRoute(
                "Controller",                                        
                "Controller/{action}/{id}",                          
                new { controller = "Controller", action = "Index", id =     UrlParameter.Optional }); 

1 Ответ

3 голосов
/ 30 января 2012

Если вы используете IIS 7 , возможно, лучше реализовать это на уровне веб-сервера.

Таким образом, правильный код состояния будет возвращен браузеру в заголовке HTTP, и ваше приложение MVC сможет справиться со своей собственной маршрутизацией, не беспокоясь о доменах и именах хостов, что в большинстве случаев является работой веб-сервера.

Чтобы добиться этого в IIS, откройте свой веб-сайт в консоли IIS и выберите URL Rewrite и выполните следующие действия:

  1. Создайте новое правило и установите для URL-адреса совпадения значение подстановочный знак и введите шаблон в качестве IP-адреса как xxx.xxx.xxx.xxx*
  2. Добавить условие, где {HTTP_HOST} равно IP-адресу сайта.
  3. Установите «тип действия» для перенаправления и введите шаблон, на который вы хотите перенаправить. «http://mysite.com{R:1}" в этом случае отобразит все после IP-адреса на эквивалентный домен, поэтому xxx.xxx.xxx.xxx/mycontent будет перенаправлять на mysite.com/mycontent

Этот подход гарантирует, что ваши подкаталоги сопоставлены, а ваш сайт остается дружественным для поисковых систем с генерированием правильных кодов ответов.

На приведенном ниже снимке экрана показано, как может выглядеть ваше правило в IIS:

sample of how to set up URL rewrite in IIS7

В качестве альтернативы этот вопрос по ASP.NET MVC Routing by Subdomain может быть полезен, если вам нужно сделать это в рамках вашего приложения.

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