アプリケーション用のルートがいくつかあります。
$routeProvider.
when('/user', {templateUrl: 'user/partials/userlist.html', controller: 'userListController'}).
when('/user/:userName', {templateUrl: 'user/partials/userdetail.html', controller: 'userDetailController'}).
when('/group',{templateUrl: 'group/partials/grouplist.html', controller: 'groupListController'}).
when('/group/:groupName', {templateUrl: 'group/partials/groupdetail.html', controller: 'groupDetailController'}).
when('/category',{templateUrl: 'category/partials/categorylist.html', controller: 'categoryListController'}).
otherwise({redirectTo: '/user'});
アプリケーションのルートは /admin/ で、.htaccess をデフォルトで index.html に設定しているため、サイトは次のようになります: www.domain.com/admin/#/user/username
...etc... 非 HTML5 バージョン。
そんな時はすべてうまくいく。HTML 5 をオンにすると、すぐに www.domain.com/user/ にリダイレクトされますが、もちろん機能しません。モジュールのルートが /admin/ であることをルーティング プロバイダーに伝えるにはどうすればよいですか?
編集:
追加<base href="/admin/"></base>
しました: index.html ヘッド タグの最後の行に、www.domain.com/admin に移動すると、www.domain.com/admin/user に正しくリダイレクトされ、userlist テンプレートとコントローラーが使用されます。ただし、www.domain.com/admin/user に直接移動すると、ページが見つからないというエラーが表示されます。この部分がデフォルトの書き換えルールと関係があるのではないかと考え始めています。
RewriteRule ^$ index.html
編集:
うん。理解した。書き換えを完全に取り出し、デフォルトのリダイレクトからユーザーへのリダイレクトから機能し、ユーザー詳細に移動すると機能しましたが、/ userまたは他のルートを入力しても機能しません...html5でのみ機能するようですアプリケーション自体からナビゲーションを行います。別のビューに直接移動することはできません。たとえば、グループに直接移動しようとしても機能しません。
したがって、インデックスに書き換える書き換えルールはなく、ユーザーのデフォルト ルートは機能しますが、グループとカテゴリは機能しません。
編集:
これが私が見つけたものです。デフォルトの index.html、$location.html5mode(true) セットを書き換えなくても、www.domain.com/#/user/ または www.domain.com と入力したページに移動する限り機能します。 /#/グループ。すぐに URL を www.domain.com/user または www.domain.com/group に書き換えます。ただし、www.domain.com/user に直接移動しようとしても機能しません。ルートの処理を行うのはフロント エンドであるため、ここでは明らかに書き換えルールは役に立ちません。
これは角度ルーティングの標準的な動作ですか?
ソリューションに追加するために編集:
サブディレクトリにリダイレクトする追加のルートがある場合は、[END] タグを使用するか、ディレクトリの mod-rewrite がオフになっていることを確認してください。そうしないと、書き換え後に一般的なルールが再び処理され、すべてが索引。