2015-04-28 3 views
2

Я хочу, чтобы добавить определенный контроллер и действие к базовому URLURL переписывания - Добавить страницу по умолчанию для домена

localhost:6473 -> localhost:6473/Beta/Index 

с URL переписывания в Web.config, но в какой-то причине он не работает

<rewrite> 
    <rules> 
    <rule name="Beta_Local" stopProcessing="true"> 
     <match url="(localhost*)" ignoreCase="true" /> 
     <conditions> 
     <add input="{HTTP_HOST}" pattern= "^localhost:[0-9]{4}$" negate="true"/> 
     </conditions> 
     <action type="Redirect" url="{R:0}/Beta/Index" redirectType="Permanent" /> 
    </rule> 
    </rules> 
</rewrite> 

ответ

2

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

<match url="^$" /> 

См http://www.iis.net/learn/extensions/url-rewrite-module/url-rewrite-module-configuration-reference

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

Полное правило может быть следующее

<rewrite> 
    <rules> 
    <rule name="Beta_Local" stopProcessing="true"> 
     <match url="^$" /> 
     <action type="Redirect" url="/Beta/Index" redirectType="Permanent" /> 
    </rule> 
    </rules> 
</rewrite> 

P.S.

Если вам нужно сделать это в MVC образом, вы можете использовать маршрутизацию

routes.MapRoute(
    name: "Default", 
    url: "{controller}/{action}/{id}", 
    defaults: new { controller = "Beta", action = "Index", id = UrlParameter.Optional } 
); 
+0

Спасибо годов. Он работает. Выполнение маршрутизации слишком поздно, потому что механизм маршрутизации добавляет Бета и Индекс как невидимые для конечного пользователя, но я хочу, чтобы точный URL-адрес домена/Бета-индекс всегда был видимым по умолчанию (для Google Analytics) – Andriy