Support us .Net Basics C# SQL ASP.NET Aarvi MVC Slides C# Programs Subscribe Download

Remove # from URL AngularJS

Suggested Videos
Part 24 - Angular layout template
Part 25 - Angularjs partial templates
Part 26 - AngularJS route configuration



In this video we will discuss how to remove # from URL. This is continuation to Part 26. Please watch Part 26 from AngularJS tutorial.



There are 4 simple steps to remove # from URLs in Angular.

Step 1 : Enable html5mode routing. To do this inject $locationProvider into config() function in script.js and call html5Mode() method passing true as the argument value. With this change the config function will now look as shown below.

.config(function ($routeProvider, $locationProvider) {
    $routeProvider
        .when("/home", {
            templateUrl: "Templates/home.html",
            controller: "homeController"
        })
        .when("/courses", {
            templateUrl: "Templates/courses.html",
            controller: "coursesController"
        })
        .when("/students", {
            templateUrl: "Templates/students.html",
            controller: "studentsController"
        })
    $locationProvider.html5Mode(true);
})

Step 2 : In index.html, remove # symbols from all the links. The links in index.html should look as shown below.

<a href="home">Home</a>
<a href="courses">Courses</a>
<a href="students">Students</a>

Step 3 : Include the following URL rewrite rule in web.config. This rewrite rule, rewrites all urls to index.html, except if the request is for a file, or a directory or a Web API request.

<system.webServer>
  <rewrite>
    <rules>
      <rule name="RewriteRules" stopProcessing="true">
        <match url=".*" />
        <conditions logicalGrouping="MatchAll">
          <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
          <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
          <add input="{REQUEST_URI}" pattern="^/(api)" negate="true" />
        </conditions>
        <action type="Rewrite" url="/index.html" />
      </rule>
    </rules>
  </rewrite>
</system.webServer>

Step 4 : Set the base href to the location of your single page application. In the head section of index.html include the following line.
<base href="/" />

AngularJS tutorial for beginners

3 comments:

  1. what should be code of .htaccess in php?

    ReplyDelete
  2. Very usefull for me.
    It worked for me .
    Thank you so much

    ReplyDelete
  3. I need RewriteRules for .htaccess file

    ReplyDelete

It would be great if you can help share these free resources