Ember / Ember-Cli通过Apache服务投掷404

时间:2015-04-09 09:54:40

标签: apache ember.js url-rewriting ember-cli

当我尝试通过Apache提供我的ember应用程序时,我遇到了问题。因为位置设置为“历史”而不是“哈希”,所以Apache正在尝试加载不存在的魔术余烬路径作为文件。 myapp.com/login会抛出404,因为没有login.html。

我已经做了一些淘汰,并且令人惊讶的是,这并没有太多让我相信没有多少人在apache上部署ember应用程序。

所以建议我编写Apache URL Rewrite规则,但是我试过的那个规则似乎没有用。

Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteRule ^(.*)$ index.html [L]

Options FollowSymLinks

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

不要工作。

除了回到“哈希”之外,有没有人知道该做什么?

问候,无能的人。

2 个答案:

答案 0 :(得分:4)

您需要将所有内容路由到索引,但存在的文件除外:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.html#$1 [L]

答案 1 :(得分:0)

如果您可以返回哈希,可以将locationType设置为“hash”。

检查下一个答案: https://stackoverflow.com/a/28630973/4425050

我遇到了同样的问题,我用它修好了。