Search code examples
javascriptangularjsurl-routinghtml5-history

Angular route with html5Mode giving 'Not found' page after reload


I made some Angular routes as shown in the code bellow.

app.config(function($routeProvider, $locationProvider, $provide) {
    $routeProvider
    .when('/', {
         templateUrl: 'home.html',
         controller: 'AppCtrl'
    });
    .when('/portfolio', {
        templateUrl: 'portfolio.html',
        controller: 'AppCtrl'
    })
    $provide.decorator('$sniffer', function($delegate) {
         $delegate.history = historyCompatCheck();
         return $delegate;
    });
    $locationProvider.html5Mode(true);
});

This works fine, after i set the base href to be "/" it accepted an anchor with the href of "/portfolio", but when i go to "http://url.com/portfiolo" or try to reload the page when i'm on the portfolio route it will give me an server error. Can i do something about this?

Thanks in advance.


Solution

  • I solved it myself.. you always need to make a .htaccess file in the root of your project. Containing the following:

     <IfModule mod_rewrite.c>
        RewriteEngine On
        RewriteBase /
        RewriteRule ^index\.php$ - [L]
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteRule . /index.php [L]
     </IfModule>