2015-04-17 4 views
4

Я использую маршрутизацию в своем угловом приложении для загрузки URL-адресов. Это отлично работает, когда я нажимаю ссылки внутри приложения, но когда я пытаюсь перейти непосредственно к URL приложения, сервер возвращает 404.Угловой режим HTML5 с WordPress, обновляющий страницу приводит к 404

Вот мой код:

myApp.config(function ($routeProvider, $locationProvider) { 
    $locationProvider.html5Mode(true); 

    $routeProvider 
     .when('/booking', { 
      templateUrl: 'wp-content/themes/myapp/pages/begin.html', 
      controller: 'mainController' 
     }) 
     .otherwise({ 
      redirectTo: "/" 
     }); 
}); 

Мой заголовок имеет <base href="/myapp/"> вверху, в заголовках.

Я прочитал, что это вопрос апач переписан, поэтому я попытался модифицировать мой .htaccess, чтобы включать в себя следующее:

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

Однако, это, кажется, не делают разницы, кроме перенаправления на 404 стр. Я использую WAMP и localhost.

Как сделать так, чтобы обновление приложения или ссылка непосредственно на страницу работали?

+0

сервер должен послать клиента index.html (или PHP) к URL underneith (не переадресовывать), если реальный файл не существует. – YOU

+0

несколько похожих сообщений - http://stackoverflow.com/questions/28224012/angular-js-routes-not-working-on-wamp – YOU

ответ

0

Попробуйте

$routeProvider 
    .when('/', { 
    templateUrl: 'wp-content/themes/myapp/pages/index.html', 
    controller: 'indexController' 
    }) 
.when('/booking', { 
     templateUrl: 'wp-content/themes/myapp/pages/begin.html', 
     controller: 'mainController' 
    }) 
    .otherwise({ 
     redirectTo: "/" 
    }); 
0

ли вы меняли WP пермалинки?

В моем случае изменения настроек Permalinks в

/blog/%postname%/ 

или

/%postname%/ 

зафиксировал его.

Кроме того, убедитесь, что объявили base href в верхней части раздела <head> в вашем файле index.*. Я рекомендую использовать этот скрипт:

<base href="<?php $url_info = parse_url(home_url()); echo trailingslashit($url_info['path']); ?>">

Смежные вопросы