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)。