0
我有一个角度的应用程序,它使用PHP作为API,前端也使用了一点点。Apache提供的角度应用程序
路由已成为不可能;只返回第一级路线。
我的结构如下:
- /app/index.html
- /应用/脚本/ [所有角文件]
- /应用/视图/ [全部PHP解析的HTML文件]
- /应用程序/ API/[应用PHP文件]
路由器(角):
angular.module('MyApp')
.config(['$routeProvider', '$locationProvider', function ($routeProvider, $locationProvider) {
$locationProvider.html5Mode(true);
$routeProvider
.when('/', {redirectTo: '/home'})
.when('/home', {
templateUrl: 'views/mainview.php?sec=home',
controller: 'HomeCtrl'
})
.when('/user', {
templateUrl: 'views/mainview.php?sec=user',
controller: 'ProfileCtrl'
});
个
虚拟主机的Apache文件
<VirtualHost 127.0.0.2:80>
DocumentRoot "M:/site/app"
# names and emails commented out
</VirtualHost>
的.htaccess
<IfModule mod_rewrite.c>
Options +FollowSymlinks
RewriteEngine On
RewriteRule ^/user/([0-9]+)$ /user?user=$1
</IfModule>
当我访问127.0.0.2,它重定向到/ home和工作正常。 当我访问/ user?id = 1时,它也可以正常工作。 但是,如果我检索/ user/1,那么只有主要的PHP解析HTML加载,但所有依赖项(脚本,CSS,其他任何)只是返回相同的主HTML文件,从而失败。
我见过manyStackOverflowresponses,到目前为止,我还没有能够解决什么...
谁能帮我做路由发生呢?
老实说,我不。我只是希望Apache将我的/用户/ 1翻译为/ user?id = 1,而Angular会处理这个问题 – Jago
我的错误,我明白你现在要问什么。你有什么理由需要在Apache httpd级别添加它?您可以设置多个角度路线以使用相同的处理程序。祝你好运。 – scottseeker
AFAIK在Angular可以处理它之前,Apache会尝试处理比1级更深的任何路径。所以/ user可以工作,但/ user/1不能。或者至少这是在这里似乎发生的事情。这就是为什么我必须告诉Apache将路线翻译为1级的深度。要么是这个,要么告诉Apache不要在虚拟主机中处理任何路由。 – Jago