Codeigniter - AngularJS路由导致404错误

4
我尝试使用Codeigniter和AngularJS路由,它可以工作,但我需要去掉哈希。 我使用了以下代码:
.config(['$routeProvider', '$locationProvider', function ($routeProvider, $locationProvider) {
    $locationProvider.html5Mode(true);
    $routeProvider.
        when('/', { templateUrl: 'assets/js/partials/blank.html' }).
        when('/:name', { templateUrl: 'assets/js/partials/blank.html', controller: PagesController }).
        otherwise({redirectTo: '/'});
}]);
但是当我刷新页面时,会跳转到404。

为了使其在HTML5模式下工作,您需要设置您的Web服务器(.htaccess)以响应所有请求(非状态资源)的索引页面。 - dfsq
你能详细解释一下吗? 我尝试使用这个 .htaccess 文件,但总是导致 404 错误。 code<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} !index RewriteRule (.*) index.php [L] </IfModule>code - levipadre
感谢你的努力。我终于弄明白了。 htaccess文件没问题,只是我需要在codeigniter中更改404页面的路由。 routes.php: $route['default_controller'] = "项目名称"; $route['404_override'] = '项目名称'; 谢谢! - levipadre
很不幸,这并不完美。当我输入一个不存在的页面时,例如code($routeProvider.when('/:name',code...等等,我会陷入无限循环。有什么想法吗? - levipadre
1个回答

5
您可以通过设置$route['404_override'] = '' 将其默认控制器设为404页面。这样就不会显示404错误了。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接