1
我有一个角度应用程序,它使用angular-ui$stateProvider
和$urlRouterProver
。将nginx 404重定向到角路由/#/ 404
我的角度路由器相应地重定向到我的404状态;
$urlRouterProvider.when('', '/').otherwise('404');
$stateProvider.state('404', {
url: '/404',
templateUrl: 'partials/404.html',
controller: 'PageCtrl'
});
此404的最终url看起来像http://<snip>.com/#/404
。这工作得很好,它处理与/#/whatever/missing/
匹配的错误网址,但它不包含/wrong/url/
。
根404由nginx的error_page处理。我尝试了一些与error_page 404
的组合;
error_page 404 /#/404;
location = /#/404 {
root /var/www/<snip>.com/public/;
internal;
}
nginx的日志输出:
[error] open() "/var/www/<snip>.com/public/#/404" failed (2: No such file or directory), request: "GET/HTTP/1.1"
,它不是重定向到角的404的状态(并且不改变URL)。