使用WordPress的Angular HTML5模式,刷新页面导致404

时间:2015-04-17 23:37:02

标签: angularjs wordpress

我在我的角应用中使用路由来加载网址。当我从应用程序内部单击链接时,这非常有效,但是当我尝试直接转到应用程序URL时,服务器返回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/">

我已经读过这是一个apache重写问题,所以我尝试修改我的.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。

如何制作以便刷新应用或直接链接到该页面?

2 个答案:

答案 0 :(得分: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: "/"
    });

答案 1 :(得分:0)

你改变了你的WP永久链接吗?

在我的情况下,将永久链接设置更改为

/blog/%postname%/

/%postname%/

修好了。

另外,请务必在base href文件的<head>部分顶部声明index.*。我建议使用这个脚本:

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