Angularjs 将nginx 404重定向到角度路由/#/404
我有一个角度应用程序,它使用Angularjs 将nginx 404重定向到角度路由/#/404,angularjs,redirect,nginx,Angularjs,Redirect,Nginx,我有一个角度应用程序,它使用$stateProvider和$urlRouterProver 我的角度路由器相应地重定向到我的404状态 $urlRouterProvider.when('''/')。否则('404'); $stateProvider.state('404'{ url:“/404”, templateUrl:'partials/404.html', 控制器:“PageCtrl” }); 这个404的最终url看起来像http://.com/#/404。这是非常好的工作,它处理错误
$stateProvider
和$urlRouterProver
我的角度路由器相应地重定向到我的404状态
$urlRouterProvider.when('''/')。否则('404');
$stateProvider.state('404'{
url:“/404”,
templateUrl:'partials/404.html',
控制器:“PageCtrl”
});
这个404的最终url看起来像http://.com/#/404
。这是非常好的工作,它处理错误的url匹配/#/which/missing/
,但它不包括/error/url/
根404由nginx的。我尝试了一些与error_第404页的组合
error_第404页/#/404;
位置=/#/404{
root/var/www/.com/public/;
内部的;
}
nginx日志输出:
[error]open()“/var/www/.com/public/#/404”失败(2:没有这样的文件或目录),请求:“GET/HTTP/1.1”
而且它不会重定向到angular的404状态(也不会更改url)。仔细阅读文档后,我们可以直接使用重定向。我的nginx解决方案如下所示:
位置/{
root/var/www/.com/public/;
错误\u第404页=301http://.com/#/404;
}
我不太喜欢重定向解决方案,但它似乎没有破坏任何后退按钮,所以我同意它。:)