.htaccess重定向,如果404错误

时间:2017-08-08 06:52:34

标签: angular .htaccess mod-rewrite

我有一个带有多条路线的角度应用,例如:

/collections
/collections/1/1
/servers
/servers/1

我的应用已放入/var/www/html/myapp/ myapp 文件夹包含整个项目和index.html文件。 在 index.html 文件中, base 设置为<base href="/myapp/">

我在这个文件夹中有一个.htaccess文件,其中包含重写规则

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

当我尝试进入http://dummydomain.com/myapp/时,它工作正常,但当我进入http://dummydomain.com/myapp/collections时,它无效。

所以我的问题是,当直接请求404错误时,我如何重定向到index.html? 谢谢!

1 个答案:

答案 0 :(得分:2)

RewriteBase指令和/前面的index.html会将请求转发到站点根目录而不是当前目录。

您可以使用:

DirectoryIndex index.html

<IfModule mod_rewrite.c>
  RewriteEngine On

  RewriteRule ^index\.html$ - [L,NC]

  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule . index.html [L]
</IfModule>