使用 apache 重写的 Angular7 无法正常工作

Posted

技术标签:

【中文标题】使用 apache 重写的 Angular7 无法正常工作【英文标题】:Angular7 rewrite with apache not working correctly 【发布时间】:2019-10-16 02:49:06 【问题描述】:

我的 Angular 应用程序 7.1.4 在 apache 2.4.10 服务器上运行。我使用PathLocationStrategy 来路由我的网址。

这里是我的 index.html 文件的一瞥

<meta http-equiv="X-UA-Compatible" content="IE=Edge" />
<meta http-equiv="Cache-control" content="no-cache, no-store, must-revalidate">
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Expires" content="0" />
<title>Intranet</title>
<base href="/">

.htaccess 文件

选项 +FollowSymlinks

重写引擎开启

RewriteCond %REQUEST_FILENAME -f [OR]

RewriteCond %REQUEST_FILENAME -d

重写规则 ^ - [L]

重写规则 ^ /index.html [L]

问题是,如果我的网址看起来像

http://intranet.company.com/app/myspace?id=favorites

Apache 重定向到

http://intranet.company.com/index.html?id=favorites

我的目标页面没有显示。

知道我的 URL 都以 BASE_URI/app/... 开头,我该如何解决这个问题

【问题讨论】:

【参考方案1】:

删除index.html前面的/

   RewriteRule ^ index.html [L]

【讨论】:

还是同样的问题。

以上是关于使用 apache 重写的 Angular7 无法正常工作的主要内容,如果未能解决你的问题,请参考以下文章

Apache URL 重写无法正常工作

cakephp 在 Ubuntu 上无法进行 url 重写

Apache 为 Laravel /public 重写

apache中的vhost重写规则-摆脱子域而不重定向

Apache Rewrite(mod_rewrite)无法重写,如果目录名与root下的另一个目录相同,例如Linux上的“lib”

Apache 上的 Symfony 将 /login 路径重写为 /web/login