2013-05-02 2 views
2

Imagine сценарий неправильно URL, у меня есть:Лучший способ перенаправления

wellspell.com 

а

wellspeel.com 
weelspell.com 
weelspeel.com 

, и я хочу, чтобы мое приложение MVC работать только с правильным именем домена.

Моя текущая проблема заключается в отсутствии поддержки на CNAME под текущей панели управления DNS, как я могу легко добавить *.wellspeel.com и www.wellspeel.com, но никогда не wellspeel.com (только как ANAME).

Что такое самая простая конфигурация, поэтому я могу перенаправить http://wellspeel.com на номер http://wellspell.com?

Что я сейчас в моем первом контроллере, простая проверка с помощью requestContext.HttpContext.Request.Url.Host, а затем фильтруют и перенаправляет пользователя с

requestContext.HttpContext.Response.RedirectPermanent("http://wellspell.com"); 

Но это уже внутри контроллера Initialization ... я могу сделать перенаправление до достижения контроллера?

Я искал в документации о UrlRoutingModule, но после нескольких попыток я был потерян ...

Может кто-нибудь мне точку в правильном направлении, или же кто-нибудь имеет вопрос и как вы, ребята решили его?


P.S. Я также думал, что могу создать простой обработчик на новом веб-сайте, а в том, что привязки веб-сайтов добавляют все «плохие» домены и перенаправляют оттуда, используя, возможно, простое XML-конфигурацию, которую проще обновлять ...

ответ

1

Если вы запускаете IIS 7 или более позднюю версию, вы можете просто удостовериться в HTTP Redirect и пропустить, чтобы встать на любой код.

Редактировать: По какой-то причине я предполагал, что вы встали на сайты IIS для каждого возможного домена. Если вы просто настраиваете один сайт IIS и включаете несколько привязок для каждого возможного домена, тогда вам может понадобиться изучить правила IIS URL Rewrite (это все равно позволит вам пропустить настройку любого кода, поскольку правила будут выполнены до MVC трубопровод).

В частности, я думаю, вас заинтересует входной сигнал HTTP_HOST.

Вот (непроверенные) пример:

<system.webServer> 
    <rewrite> 
     <rules> 
      <rule name="SpellingErrorOne" stopProcessing="true"> 
       <match url="(.*)" /> 
       <conditions> 
        <add input="{HTTP_HOST}" pattern="^weelspeel.com" /> 
       </conditions> 
       <action type="Redirect" url="http://wellspell.com" /> 
      </rule> 
     </rules> 
    </rewrite> 
</system.webServer> 

Вам просто нужно добавить правило для каждого домена, который вы хотите обработать. <condition> действует как критерий, который должен быть проверен для выполнения действия (например, перенаправления).

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