Laurentiu Stamate Laurentiu Stamate - 2 months ago 40
ASP.NET (C#) Question

Configure IIS server to work with Aurelia framework and push state

I have created a basic aurelia app starting from this repo and I was trying to get rid of the # (hashtag) in the URL bar.

I have 2 projects, one running WebApi on a machine and one running an empty web project (not MVC) on another machine. On the official documentation website it only says how to configure your routes but my project is not MVC oriented.

How can I configure the IIS server from Web.config in a sense that when I access

http://localhost/home
it should start the aurelia framework rather than the 404 not found page?

Answer

I'm using the Azure which needed a web.config to handle non hash routing correctly, it just redirects all routes into the index.html which contains the aurelia app. Without it (or a similar technique) it was giving 404s.

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <system.webServer>
     <rewrite>
             <rules>
                 <remove name="redirect all requests" />
                 <rule name="redirect all requests" stopProcessing="true">
                     <match url="^(.*)$" ignoreCase="false" />
                     <conditions logicalGrouping="MatchAll">
                         <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" pattern="" ignoreCase="false" />
                     </conditions>
                     <action type="Rewrite" url="index.html" appendQueryString="true" />
                 </rule>
             </rules>
         </rewrite>
    </system.webServer>
</configuration>

Hope this helps.

Comments