gpt4 book ai didi

angularjs - Angular 路由的 htaccess 重定向

转载 作者:行者123 更新时间:2023-12-02 22:14:32 25 4
gpt4 key购买 nike

我有一个有多个路线的 Angular 应用程序,例如:

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]

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

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

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

仅当没有应解析的实际文件时,有什么方法可以让 htaccess 将请求重定向到 index.html(带有 View 参数)?

最佳答案

使用如下代码片段:

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

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

这将跳至实际资源(如果有),并跳至所有 AngularJS 路由的 index.html

关于angularjs - Angular 路由的 htaccess 重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22739455/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com