Если вы используете IIS 7 , возможно, лучше реализовать это на уровне веб-сервера.
Таким образом, правильный код состояния будет возвращен браузеру в заголовке HTTP, и ваше приложение MVC сможет справиться со своей собственной маршрутизацией, не беспокоясь о доменах и именах хостов, что в большинстве случаев является работой веб-сервера.
Чтобы добиться этого в IIS, откройте свой веб-сайт в консоли IIS и выберите URL Rewrite
и выполните следующие действия:
- Создайте новое правило и установите для URL-адреса совпадения значение подстановочный знак и введите шаблон в качестве IP-адреса как
xxx.xxx.xxx.xxx*
- Добавить условие, где {HTTP_HOST} равно IP-адресу сайта.
- Установите «тип действия» для перенаправления и введите шаблон, на который вы хотите перенаправить. «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](https://i.stack.imgur.com/UAI8L.jpg)
В качестве альтернативы этот вопрос по ASP.NET MVC Routing by Subdomain может быть полезен, если вам нужно сделать это в рамках вашего приложения.