小编典典

htaccess重定向到Angular路由

angularjs

我有一些路线的角度应用程序,例如:

site.com/
site.com/page
site.com/page/4

使用angular的html5路由模式,当您从应用程序内单击指向链接的链接时,这些链接可以正确解决,但是当您进行硬刷新时,这些链接当然会出现404错误。为了解决这个问题,我尝试实现基本的htaccess重写。

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_METHOD} !OPTIONS
RewriteRule ^(.*)$ index.html [L]

这适用于角度请求,但是当我尝试在我的域内加载脚本或进行ajax调用时,例如:

<script src="/app/programs/script.js"></script>

该脚本不会加载-它的请求被重定向,并且它尝试加载index.html页,因为.htaccess认为它应该重新路由该请求-
不知道此文件确实存在,并且应该加载该文件而不是重定向。

只有在没有实际文件可以解析的情况下,htaccess才可以将htaccess将请求重定向到index.html(使用视图参数)吗?


阅读 313

收藏
2020-07-04

共1个答案

小编典典

使用如下代码段:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]

RewriteRule ^(.*) /index.html [NC,L]

如果有一个,这将跳至实际资源,index.html对于所有AngularJS路由,这将跳至实际资源。

2020-07-04