Usando $ routeProvider para redirigir a rutas fuera de Angular

He escrito parte de una aplicación web en Angular. Para asegurarme de que todas las rutas estén cubiertas, quería agregar unredirectTo propiedad a$routeProvider, para que las rutas no válidas se devuelvan a la raíz de la aplicación web, que no utiliza Angular.

Lo intenté:

$routeProvider.otherwise({
    redirectTo: '/'
});

pero, obviamente, esto solo enruta en la parte controlada de Angular de la URL, por lo que los usuarios serían redirigidos a una URL comohttp://app.com/angular-part-of-web-app#, en lugar dehttp://app.com, a donde me gustaría que fueran.

He resuelto esto al tener un parcial en blanco para actuar como una página '404', y luego un controlador que solo usa el$window Objeto para redirigir a la página deseada:

rutas.js

// Redirect to site list.
$routeProvider.when('/404', {
    templateUrl: '/partials/404.html',
    controller: 'RedirectCtrl'
});

// Redirect to the 404 page.
$routeProvider.otherwise({
    redirectTo: '/404'
});

controllers.js

// Controller to redirect users to root page of site.
.controller('RedirectCtrl', ['$scope', '$window', function ($scope, $window) {

    $window.location.href = '/';
}]);

Sin embargo, esto está activando las campanas de alarma 'demasiado hacky, debe ser una mejor manera'. ¿Hay una mejor manera de hacer esto en Angular?

EDITAR:¿Rutas angulares - redireccionando a un sitio externo? No dio una respuesta a la misma pregunta. Dejaré mi pregunta abierta en lugar de marcarla como un duplicado (por ahora), ya que con el mundo Angular moviéndose tan rápido, la respuesta anterior puede que ya no sea el caso.

Respuestas a la pregunta(5)

Su respuesta a la pregunta