如何在angularjs中禁用IE8和IE9上的#hashbang重定向

如何在angularjs中禁用IE8和IE9上的#hashbang重定向,angularjs,hashbang,Angularjs,Hashbang,我有一个angularjs(v1.2.19)应用程序,它由两个单独的html页面组成(或者实际上是一个文件夹中的两个单独的angularjs应用程序): index.html edit.html 我在IE8和IE9上遇到了一些众所周知的兼容性问题(它们都不支持html5历史API)。 我的配置包含:$locationProvider.html5Mode(true).hashPrefix(“!”) 我在应用程序中没有任何路由-index.html和edit.html可以被视为单独的angula

我有一个angularjs(v1.2.19)应用程序,它由两个单独的html页面组成(或者实际上是一个文件夹中的两个单独的angularjs应用程序):

  • index.html
  • edit.html
我在IE8和IE9上遇到了一些众所周知的兼容性问题(它们都不支持html5历史API)。 我的配置包含:
$locationProvider.html5Mode(true).hashPrefix(“!”)

我在应用程序中没有任何路由-index.html和edit.html可以被视为单独的angularjs应用程序-具有单独的angularjs初始化,等等

问题是这样的: 每当我打开链接:
http://server/app
http://server/app/index.html
一切正常

每当我打开链接:
http://server/app/edit.html
从ng单击或直接在浏览器中单击,页面将自动重定向到
http://server/#!app/edit.html

如何禁用“hashbang”重定向?Edit.html不是index.html的一部分,因此应直接加载它,而无需任何index.html重定向和“哈希”路由

我尝试了下面的代码,但它会导致无限的重定向循环

<!--[if lt IE 10]>
    <script>   
        window.location = window.location.href.replace( /#.*/, "");
    </script>
<![endif]-->

感谢您的帮助。

尝试禁用HTML5模式
$locationProvider.html5Mode(false).hashPrefix(“!”)

或者完全删除此字符串。

可能需要在服务器端对其进行调整(在html5模式下重写)。在ui路由器项目中有一个关于这一点的FAQ条目,请参阅希望这有帮助。感谢您的提示。然而,我不知道我应该重写什么。最后,问题归结为一个事实,我有一个angular应用程序,它不在index.html下。每当我尝试在IE8/IE9浏览器中打开该链接时,链接都会被angular重写,并添加#。我应该使用Apache2等重写什么链接?是否可能重复一个指令以确保完全窗口重定向将发生?它可能是您添加到标记的一个属性,用于监视单击并强制window.location指向this.href?