【发布时间】:2018-10-07 09:00:33
【问题描述】:
我正在构建一个 Angular 应用程序。它以/hris 的基础a href 托管。所以我访问应用程序的基本 URL 将是domain.com/hris。此外,我有 3 个不同的应用程序,其中一个称为 term。因此,当我点击 term 链接时,它会转到 domain.com/hris/term。
当用户直接尝试访问链接domain.com/hris/term时,它会返回404并显示一条消息:HTTP Status 404 - /hris/term。
我不希望发生 404。如何完成这项工作?
到目前为止我做了什么:
我尝试在index.html 所在的文件夹中创建一个.htaccess 文件。(我使用ng build --base-href=/hris/ 构建了Angular 应用程序)。我将dist 文件夹部署到服务器的一个名为hris 的目录中。
在.htaccess 文件中,我使用了以下变体,但无济于事。
1
<IfModule mod_rewrite.c>
Options Indexes FollowSymLinks
RewriteEngine On
RewriteBase /hris/
RewriteRule ^index\.html$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.html [L]
</IfModule>
2
<IfModule mod_rewrite.c>
Options Indexes FollowSymLinks
RewriteEngine On
RewriteRule ^index\.html$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.html [L]
</IfModule>
3
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^(.*) index.html [NC,L]
</IfModule>
我正在使用 Angular 5。请告诉我我的方法是否正确,或者我必须做些什么才能让这一切顺利进行。
版本:Apache Tomcat 7- 版本 7.0.64
【问题讨论】:
标签: angular apache tomcat deep-linking