Javascript 使用angular ui路由器处理没有hashbang的路由

Javascript 使用angular ui路由器处理没有hashbang的路由,javascript,angularjs,angular-ui-router,Javascript,Angularjs,Angular Ui Router,我在网上搜索了很多关于这个问题的答案,但还没有找到任何答案 现在,我的文件中有一段代码,我认为它可以处理除我指定的路由/状态之外的所有路由/状态: $urlRouterProvider.otherwise('/'); 但是,此功能仅适用于像localhost:1337/#/stuff这样的路径,但是如果我键入localhost:1337/stuff,我会收到一个可怕的内部服务器错误 理想情况下,我希望localhost:1337/stuff或任何其他没有hashbang的URL重定向到loca

我在网上搜索了很多关于这个问题的答案,但还没有找到任何答案

现在,我的文件中有一段代码,我认为它可以处理除我指定的路由/状态之外的所有路由/状态:

$urlRouterProvider.otherwise('/');
但是,此功能仅适用于像
localhost:1337/#/stuff
这样的路径,但是如果我键入
localhost:1337/stuff
,我会收到一个可怕的内部服务器错误

理想情况下,我希望
localhost:1337/stuff
或任何其他没有hashbang的URL重定向到
localhost:1337/#/
(我的应用程序主页)


关于如何完成这一点,您有什么想法吗?

您需要设置两件事:

  • AngularJS配置中的所谓“HTML5模式”。这是最简单的部分:
    $locationProvider.html5Mode(true)
  • 在服务器上设置“重写”,以便任何请求都只呈现主html页面
  • 来自AngularJS:

    使用这种模式需要在服务器端重写URL,基本上您必须重写所有指向应用程序入口点的链接(例如index.html)


    您可以在app.js中启用html5模式,这也将从项目中的链接中删除hashbang(
    localhost:1337/stuff
    而不是
    localhost:1337/#/stuff


    如果这不是您想要的行为,那么您必须在服务器端进行重写。

    谢谢您的回答!我想这可能超出了我的项目范围。