AngularJS: ¿Cómo eliminar #! / (Prefijo de explosión) de la URL?

Ya he hecho$locationProvider.html5Mode(true); Pero no está funcionando. Cada vez que accedohttp://example.com va ahttp://example.com/#!/. El código se da aquí:

var myApp = angular.module('myApp', ['ui.router', 'ui.bootstrap']);

myApp.config(['$qProvider', function ($qProvider) {
    $qProvider.errorOnUnhandledRejections(false);
}]);

myApp.config(function($stateProvider, $urlRouterProvider,$locationProvider) {
    // For any unmatched url, redirect to EXTRANET home page
    $urlRouterProvider.otherwise('/');
    // Now set up the states
    $stateProvider
    .state('listrole', {
    url: "/list-role",
    views: {
      'main-content': {
        templateUrl: rootUrl+ 'views/main.html',
        controller: 'rolesCtrl'
      }
    }
    })
    $locationProvider.hashPrefix('');
    $locationProvider.html5Mode(true);
});

Actualizar yo añadí$locationProvider.hashPrefix(''); también pero no hay diferencia. También déjame decirte que estoy ingresando la dirección en la barra de direcciones y presionando enter. ¿Lo estoy haciendo bien? ¿Cómo encontrará el navegador que no necesita actualizarse desde el servidor?

Actualización n. ° 2

Idealmente quiero URL comohttp://example.com yhttp://example.com/#!/list-role ahttp://example.com/list-role. Ahora mismohttp://example.com/list-role da 404

Actualización n. ° 3

Estoy usando el proxy nginx, si eso ayuda.

Actualización n. ° 4

Caché borrado. Ahora puedo verhttp://example.com en lugar dehttp://example.com/#! pero aúnhttp://example.com/list-role da 404

Respuestas a la pregunta(6)

Su respuesta a la pregunta