加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

angularjs – htaccess重定向的Angular路由

发布时间:2020-12-17 08:42:45 所属栏目:安全 来源:网络整理
导读:我有一个角度应用程序与几个路由,如: site.com/site.com/pagesite.com/page/4 使用angular的html5路由模式,当您点击应用程序中的链接时,这些解决方法会正确解析,但当您执行硬刷新时,当然是404错误。为了解决这个问题,我试过实现一个基本的htaccess重
我有一个角度应用程序与几个路由,如:
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重定向请求到index.html(与视图参数)只有当没有一个实际的文件,它应该解决吗?

使用以下代码段:
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路由。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读