我有一个带有多条路线的角度应用,例如:
/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? 谢谢!
答案 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>