Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 将nginx 404重定向到角度路由/#/404_Angularjs_Redirect_Nginx - Fatal编程技术网

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;
}
我不太喜欢重定向解决方案,但它似乎没有破坏任何后退按钮,所以我同意它。:)