2017-03-26 12 views
1

角度アプリがhtml5Modeルーティングを使用するように切り替える必要があります。しかし、私はまた、私の古いルートへのリクエストを新しいものにリダイレクトしたい。私はこれを試してもうまくいきません。ここで私が持っているものです。古い、非html5Modeルートから新しいhtml5Modeルートへのリダイレクト

$routeProvider 
    .when('/foo/browse', { 
     templateUrl: '/app/foo-browse.html', 
     controller: 'BrowseFoos' 
    }) 
    .when('/foo/#/browse', { 
     redirectTo: '/foo/browse' 
    }); 

$locationProvider.html5Mode(true); 

をしかし、私はこのhttp://localhost/foo/#/browseように私のブラウザにURLを入力すると、それはエンコードされていない適切にリダイレクトされます(ブラウザのURLバーにこのように見える:http://localhost/foo/#%2Fbrowse

は何かがあります私はこれを解決するために特別なことができますか?

+0

html5ルートが有効になっていますか? @programmer – Yaser

+0

はい、最近私はそれを有効にして、今も私のハッシュリンクを指し示す古いリンクをサポートしたいと思います。 – programmer

答えて

0

私は迅速かつ汚れたjsリダイレクトを追加し、それを1日と呼びました。私はこれを私のhtml> headタグに入れます:

<script>  
(function redirectOldCrustyHashBasedUrls() { 
    'use strict'; 
    var href = window.location.href; 
    if(href.indexOf('/my-app/#/') !== -1){ 
     href = href.replace('/my-app/#/', '/my-app/'); 
     window.location = href; 
    } 
})(); 
</script> 
関連する問題