2013-08-26 2 views
4

코드 경로와 같이 일부 각도 경로를 만들었습니다.다시로드 한 후 html5Mode가있는 각도 경로가 '찾을 수 없음'페이지로 표시됩니다.

app.config(function($routeProvider, $locationProvider, $provide) { 
    $routeProvider 
    .when('/', { 
     templateUrl: 'home.html', 
     controller: 'AppCtrl' 
    }); 
    .when('/portfolio', { 
     templateUrl: 'portfolio.html', 
     controller: 'AppCtrl' 
    }) 
    $provide.decorator('$sniffer', function($delegate) { 
     $delegate.history = historyCompatCheck(); 
     return $delegate; 
    }); 
    $locationProvider.html5Mode(true); 
}); 

이 내가 할 기본 href를 설정 한 후 "/"는 "/ 포트폴리오"의 HREF와 앵커를 인정하지만, 내가 갈 때까지 "http://url.com/portfiolo"하거나 페이지를 다시로드하려고, 잘 작동 나는 포트홀리로에 서버 오류를 줄 것이다. 이것에 대해 뭔가 할 수 있을까요?

미리 감사드립니다.

답변

7

직접 해결했습니다. 프로젝트의 루트에서 .htaccess 파일을 만들어야합니다. 포함하는 다음

<IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteBase/
    RewriteRule ^index\.php$ - [L] 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule . /index.php [L] 
</IfModule> 
+0

내가 이상한 문제가 있습니다 : '/ something'과 같은 "간단한"URL에 대해서 작동하지만'/ something/else'와 같은 복잡한 URL에는 작동하지 않습니다 - 왜 그런가? (나는 당신의 동일한 .htaccess를 사용했습니다) – Alberto

+0

안녕하세요 @Alberto, 당신은 이것을 읽고 사용하려고 시도해야합니다 : https://github.com/angular-ui/ui-router 그것이 당신의 문제를 해결하는지 알려주세요 :)! – jvakuiler

+2

@Alberto 더 도움이 될 수 있도록 index.html 또는 index.php의 에 를 추가해야한다고 생각합니다. – jvakuiler

0
#BEGIN 

옵션 + FollowSymLinks를

<ifModule mod_rewrite.c> 
    RewriteEngine on 

    # Don't rewrite files or directories 
    RewriteEngine on 
    RewriteCond %{REQUEST_FILENAME} -s [OR] 
    RewriteCond %{REQUEST_FILENAME} -l [OR] 
    RewriteCond %{REQUEST_FILENAME} -d 
    RewriteRule ^.*$ - [NC,L] 

    RewriteRule ^(.*) your root folder/index.php [NC,L] 

</ifModule> 
    #END 

의 작업을 100 % <base href="/"></base><head> 섹션에서 index.html을 코드에 추가

관련 문제