AngularJS使用默认参数删除哈希(#)

AngularJS使用默认参数删除哈希(#),angularjs,angular-ui-router,Angularjs,Angular Ui Router,我必须用多种语言建立这个网站,所以我在抽象状态下插入默认参数,如下所示: $urlRouterProvider.otherwise('/en'); var layoutState = { 'name': 'layout', 'abstract': true, 'url': '/:lang', }; var homeState = { 'name': 'home', 'parent': 'layout', 'templateUrl': './views/home.html

我必须用多种语言建立这个网站,所以我在抽象状态下插入默认参数,如下所示:

$urlRouterProvider.otherwise('/en');
var layoutState = {
  'name': 'layout',
  'abstract': true,
  'url': '/:lang',
};
var homeState = {
  'name': 'home',
  'parent': 'layout',
  'templateUrl': './views/home.html',
  'data': {
    'pageTitle': 'Home'
  },
  'controller': 'HomeCtrl as home'
};
然后主页状态如下所示:

$urlRouterProvider.otherwise('/en');
var layoutState = {
  'name': 'layout',
  'abstract': true,
  'url': '/:lang',
};
var homeState = {
  'name': 'home',
  'parent': 'layout',
  'templateUrl': './views/home.html',
  'data': {
    'pageTitle': 'Home'
  },
  'controller': 'HomeCtrl as home'
};
url的呈现方式如下:
http://test.local/#!/en

所需的url为:
http://test.local/en
,所以我尝试了以下选项:

$locationProvider.html5Mode({
    enabled: true,
    requireBase: false
}).hashPrefix("");
但是它不接收
lang
params,url只是
http://test.local/


有人能帮我解决这个问题吗?多谢各位

您是否配置了路由(在
.htaccess
中)?我是
.htaccess
的新手。这是我徒劳的努力,但不起作用,所以我停止了思考<代码>重写规则^en/?$#/en[NC,L]请参阅此文档-问题是我想保留每个路由的
:lang
默认参数。但如果我使用
html5Mode:true
,该参数不被理解,它将抛出404错误。即使使用
.htaccess