Angular HTML5模式,Wordpress,重写,Apache和你

时间:2014-12-31 08:21:59

标签: angularjs

还没有找到任何相关内容,但是有没有人找到正确的方法来打开HTML5模式并让它与wordpress一起正常工作并且它是当前的重写?

Wordpress重写:

<IfModule mod_rewrite.c>
      RewriteEngine On
      RewriteBase /

      #Current wordpress rewrites
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteCond %{REQUEST_URI} !index
      RewriteRule (.*) /index.php [L]
</IfModule>

当然,apache HTML5模式会重写

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} !index
    RewriteRule (.*) /index.html [L]

我知道他们非常相似,但我很难将HTML5模式用于刷新,同时将Angular APP嵌入到wordpress / php页面中。

2 个答案:

答案 0 :(得分:0)

在对此进行黑客攻击之后,我得到了一个非常hacky的回答,YMMV:

RewriteRule ^search/([^/]+)$ http://www.example.com/search/#/$1 [NE,L]

在我目前的情况下,我的应用程序位于example.com/search /

所以你告诉我你打开HTML5模式,实际上是通过重定向将其还原回来了?!

是。

你喝醉了吗?

可能,但我确实有几个理由说明原因;

  1. 我无法将wordpress重定向回index.html,因为它很可能会失败。
  2. 下一个最好的东西是什么?一个哈希,因为当html5mode关闭时它工作得很好!
  3. 那为什么甚至打开HTML5模式呢?好吧,我必须在背景中进行一些事情,我需要抓取器来阅读等等。
  4. 爬行?为什么不使用prerender.io或其他框架? 1-Money 2-Resources 3-我们可以开始创造这个术语......让我们为它抛出一个框架,而不是为了解决问题。
  5. 我不会接受我的回答,因为这是一个黑客攻击,但我知道很多人在做了一些搜索后都面临着这个问题。希望有人/我们可以为此提出更好的解决方案!

答案 1 :(得分:0)

对于WP来说,这对我来说似乎很合适。如果有的话,这将跳转到实际的资源,否则跳到index.php。

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d

RewriteRule ^.*$ - [NC,L]
RewriteRule ^(.*) /index.php [L]

如果url是/ service,则呈现服务的示例路由,如果url是其他任何内容,则呈现/ home。

$routeProvider
    .when("/service", {
        controller: "ServiceController",
        templateUrl: "/wp-content/themes/angularjs-wp/templates/service/index.html"
    })
    .otherwise({
        redirectTo: "/home"
    });
    $locationProvider
        .html5Mode(true)