我正在使用AngularJS和Apache。对于路由我正在使用ui路由器模块。
我有一个网站http://example.com 我有一个规则.htaccess => DirectoryIndex index.html
因此,当用户转到http://example.com时,它会呈现index.html但不会在网址上显示
在Index.html上有一个按钮,您点击该按钮并将您发送到用户欢迎页面
这是url => http://example.com/userwelcome.html#/welcome
userwelcome页面有3个状态。登录,注册和欢迎
来自userwelcome.js的代码
.config(['$stateProvider', '$urlRouterProvider', function ($stateProvider, $urlRouterProvider) {
$urlRouterProvider.otherwise('/welcome');
$stateProvider
.state('login', {
url: '/login',
templateUrl: 'login/vw_login.html',
})
.state('welcome', {
url: '/welcome',
templateUrl: 'userWelcome/vw_welcome.html',
})
.state('signup', {
url: '/signup',
templateUrl: 'signup/vw_signup.html'
});
}]);
当用户登录时,该网站会重定向到home.html页面 并且网址=> http://example.com/home.html#/home
我想要的是以下网址:
用于userWelcome.html欢迎状态 http://example.com/welcome
用于userWelcome.html登录状态 http://example.com/login
for home.html home state http://example.com/home
这种结构是否可行?或者我必须在一个页面中拥有所有州(登录,注册,家庭,用户欢迎)?
使用ngroute我读到你可以使用html5mode和$ location。在我的情况下,我使用ui路由器,所以我可以混合它们吗?
在Apache中我必须创建更多重写规则吗?
我发现很多帖子,文章都在谈论漂亮的网址,但每个网站都有不同的解决方案,而我无法让它发挥作用。
答案 0 :(得分:0)
由于angularjs目标SPA,所有内容实际上都是从一个页面运行,而#wit触发路由(ui-route)加载与之关联的视图并使用#将阻止浏览器转到另一个页面。
因此您无法将网站运行到例如example.com/user,然后是example.com/home 因为它是浏览器的不同导航URL