2015-09-15 2 views
0

Мой проект с использованием php и угловой, он размещен в IIS. Я включаю html5Mode в угловом, это означает, что я могу использовать маршрут, как localhost/home, а не locahost/#/home.Как настроить IIS Rewrite

Моя проблема когда я копирую & передать URL (например: http://localhost/home) на другую вкладку или браузер, IIS возвращают ошибку

Requested URL http://localhost/home/

Physical Path <physical link>\link\

Я хочу, используя угловую маршрут (не ui-router) для обработки всего маршрута в моем приложении. Как я могу настроить URL Rewrite, чтобы он понял все маршруты, просто нужно указать на home?

Мой маршрут проекта: index.html. Это нормальный файл html.

В ASP.NET MVC, я конфиг этот маршрут, как это:

routes.MapRoute(
       name: "Renewal SPA", 
       url: "{*catchall}", 
       defaults: new { controller = "Home", action = "Index" }); 

Как сделать то же самое с php?

ответ

1

Вы должны конфиг IIS переписывает в файле конфигурации (или в IIS), как это:

<system.webServer> 
<rewrite> 
<rules> 
    <rule name="Main Rule" stopProcessing="true"> 
    <match url=".*" /> 
    <conditions logicalGrouping="MatchAll"> 
     <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />         
     <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" /> 
    </conditions> 
    <action type="Rewrite" url="/" /> 
    </rule> 
    </rules> 
</rewrite> 
</system.webServer> 

Убедитесь, что URL Rewrite установлен на вашем IIS (скачать его из here).

Смотрите эту статью: Configure your server to work with html5Mode