我正在使用LocationMatch
Apache 指令将一些逻辑应用于 AngularJS 应用程序。为了测试,我的正则表达式只涵盖一种状态, http: //my.ui.com/login
阿帕奇
<LocationMatch "^/(login)(.*)">
Redirect "/login" "/login2"
</LocationMatch>
这个简单Redirect
的用于检查块是否已被触发。当我直接到达上面的 URL 时(假 URL,抱歉我不能分享真实的应用程序),我可以通过观察 URL 栏看到重定向工作。但是,如果我使用按钮导航到此状态ui-sref
,则永远不会触发 LocationMatch 块。这是相关的 AngularJS 代码,我使用的是 ui-router 库:
界面状态
$stateProvider.state('login', {
url: '/login',
templateUrl: 'login.html',
controller: 'LoginCtrl'
});
按钮(单击不会触发 Apache)
<button class="md-button" ui-sref="login">Login</button>
我猜是因为 AngularJS 应用程序是一次性加载的,当 stateChange 发生时没有读取磁盘。有谁知道 Apache 检测 AngularJS 应用程序状态变化的更好方法?