使用 React Router v4 的 IIS 规则

2023-12-29

我正在尝试使用 BrowserRouter 让我的路由与 IIS 和 React Router v4 一起使用。

在我的本地主机上,我的所有路由都按预期工作。 React Router 按照我想要的方式处理一切:

  • http://www.example.com/appfolder/dest http://www.example.com/appfolder/dest
  • http://www.example.com/appfolder/dest/CODE http://www.example.com/appfolder/dest/CODE
  • http://www.example.com/appfolder/dest/CODE/INVALID/URL http://www.example.com/appfolder/dest/CODE/INVALID/URL

现在,在 IIS 中,我设置了一条忽略“/appfolder/api/*”的规则,以便为我的应用程序提供 api。这样可行。

如何让 IIS 重定向到 'http://www.example.com/appfolder/dest/CODE http://www.example.com/appfolder/dest/CODE' 并让 React Router 根据其规则处理它。如果我重定向到“/appfolder/index.html”,我就会丢失“代码”,我想保留它以供 ReactRouter 处理。

如果我尝试重定向到 'http://www.example.com/appfolder/dest/CODE http://www.example.com/appfolder/dest/CODE'通过使用正则表达式捕获组,我得到'ERR_TOO_MANY_REDIRECTS'。

我目前的 web.config 中有此规则:

    <rule name="ReactRouter Routes" stopProcessing="true">
      <match url=".*" />
      <conditions logicalGrouping="MatchAll">
        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
        <add input="{REQUEST_URI}" pattern="^/appfolder/api/" negate="true" />
      </conditions>
      <action type="Redirect" url="/appfolder/dest/CODE" />
      <!-- also tried this -->
      <!-- action type="Redirect" url="/appfolder/index.html" /-->
    </rule>

我找到了解决方案。我将动作类型更改为重写,效果非常好。

IIS规则最终解决方案:

<rule name="ReactRouter Routes" stopProcessing="true">
  <match url=".*" />
  <conditions logicalGrouping="MatchAll">
    <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
    <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
    <add input="{REQUEST_URI}" pattern="^/appfolder/api/" negate="true" />
  </conditions>
  <action type="Rewrite" url="/appfolder/index.html" />
</rule>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 React Router v4 的 IIS 规则 的相关文章

  • 导入证书时CRYPT_E_NOT_FOUND

    我正在尝试自动生成证书签名请求的过程 然后从 Windows Server 2012 R2 服务器上的 CA 导入响应 以用作 IIS 中 SSL 绑定的证书 我能够生成 CSR 然后将其提供给安全团队 然后安全团队为我提供响应 然后导入
  • IIS 7.0和win2k8中有多少个不同的地方需要设置日期格式

    我正在尝试使用 win2k8 将旧的经典 asp 应用程序迁移到 IIS 7 0 如果可以的话 我绝对不想更改旧代码 我在日期格式的自定义区域选项中设置了日期格式 在控制面板中的区域和语言选项中将其更改为 dd MMM yy 我仍然收到 C
  • VirtualizedList:您有一个很大的列表,更新速度很慢

    我使用 FlatList 来处理大量项目 我收到来自 Expo XDE 的以下警报 VirtualizedList 您有一个更新速度很慢的大列表 make 确保你的 renderItem 函数渲染遵循 React 的组件 性能最佳实践 例如
  • 检测 mobx observable 何时发生变化

    是否有可能检测到可观察的变化何时发生 例如 假设你有这个 observable myObject id 1 name apples id 2 name banana 随后 随着一些用户输入 这些值会发生变化 我怎样才能轻松检测到这一点 我想
  • 如何使用PowerShell脚本远程启动/停止IIS 6.0/7.0?

    我有两台服务器服务器 A 和服务器 B 我想使用 Powershell 脚本从服务器 B 远程停止服务器 A 最简单的方法之一就是使用命令行执行PsExec http www microsoft com technet sysinterna
  • Apache 重写 - 获取 PHP 中的原始 URL

    我在 nginx 或 Apache 中重写了这个地址 http domain com hello 到像这样的脚本 http domain com test php ref hell 如何在 PHP 中访问这个重写的 URL 因为 如果我使用
  • 运行 tsc(TypeScript 编译器)时如何复制 dist 或 build 文件夹中的 package.json

    我有一个 TypeScript React 组件 它使用package json文件 参见屏幕截图 然后我运行tsc为了在我的中将其转译为 es5dist文件夹但package json文件没有被复制 请注意 在屏幕截图中 我手动将其复制到
  • 我想将我的 NEXT.js 项目链接到静态网站

    我有一个使用 HTML CSS 开发的网站 它是一个静态网站 但现在我使用 NEXT js 与 Strapi API 集成创建了一个博客项目 我的问题是如何将我的静态网站与我的 Next js 项目链接起来 我尝试使用链接标签 但没有用 i
  • 使用 PHP/COM/ADSI/LDAP 更改 AD 密码

    我已经被这个问题困扰了好几天了 我尝试了各种解决方案均无济于事 请帮忙 Problem 我们有两个域控制器 它们不属于我们的管理范围 我们能够通过端口 389 上的 LDAP 进行连接 但无法通过端口 636 安全连接 我们正在开发一个系统
  • 在调试模式下运行 NPX 命令

    我有一些npx create react app命令卡住了 终端上没有显示任何错误 所以 我需要运行npx in 调试模式 有没有办法获得debug登录npx命令来识别问题 edit 我运行的命令 npx create react app
  • 无法从 Twin.macro 中的 Prop 获取值

    您可以在这里查看我正在尝试执行的操作的示例 https codesandbox io s vibrant leaf qj8vz https codesandbox io s vibrant leaf qj8vz 注意 这个特定的例子使用双宏
  • htaccess 301 重定向 - 删除查询字符串 (QSA)

    我一直在努力处理一些 htaccess 重定向 我只是花了一些时间在堆栈上阅读和搜索 但无法获得适合我的场景的答案 我正在将旧客户端网站的 301 重定向到新客户端 旧页面有参数查询 我想从网址中删除它 menu php idCategor
  • React TypeError:x 不是函数

    我在子组件中从父组件调用函数 booksRefresh 但出现错误 类型错误 booksRefresh 不是函数 我不知道为什么 因为 booksRefresh 是一个函数 有人可以帮我解释为什么会出现这个错误吗 这是我的代码 import
  • 需要根据用户选择有条件地渲染具有 X 行数的部分

    我有一个反应组件 其中包含一个下拉列表 其中的选项包括none 1 5 and 13 根据用户选择的数字 我需要渲染一个部分 其中包括许多行 每个行都有字段名称和下拉列表 如果用户不选择任何一个 我需要整个附加配置部分消失 新部分中的每个下
  • 在 React JSX 中返回配对元素

    问题 在 React 中 您希望通过映射数组来创建 DOM 结构 但数组中的每个项目应返回 2 个元素 例如 import React from react import from lodash let Component React ex
  • 使用 SQL Server 2008 的 IIS 应用程序池身份帐户配置集成安全性

    我的网站有以下配置 两个 Web 前端 例如机器名称 WFE1 和 WFE2 1 SQ 1 个 SQL Server 数据库集群 例如机器名称 DBCluster 所有计算机都位于运行 Windows 2008 R2 Enterprise
  • React/Jest - 如何模拟触摸“滑动”事件

    我有一个组件 每当完成滑动交互时就会触发函数调用 这种滑动交互可以由 touchEvent 或 mouseEvent 执行 我的目标是检查每当发生滑动时该函数是否被调用 但我在玩笑测试中无法模拟 touchEvent 使用 swiper r
  • linux azure web 应用程序不显示我的reactjs 应用程序

    我使用 npx create react app 创建了一个 Reactjs Web 应用程序 并创建了一个 azure ci cd 管道以将构建文件夹推送到我的 Linux Web 应用程序实例 我还指定了启动命令 pm2 serve h
  • Permissions-Policy 标头错误:无法识别的功能:“interest-cohort”

    我才刚刚开始反应 我的页面在本地主机上运行良好 现在我正尝试在 github 上托管我的页面 我使用了 npm run deploy 并托管 这是我的 package json 现在 当我尝试访问我的页面时 我遇到了错误 第一个警告最让我担
  • 有什么办法可以避免使用 React 的 SSR 中的“文本内容不匹配”警告?

    我已经用 webpack 和 HMR 设置了 SSR 环境 有一个静态呈现的标记 服务器传递给客户端和client js捆绑与ReactDOM hydrate 方法 如果我更改源代码 HMR 可以正常工作 但会在控制台中发出警告 指出客户端

随机推荐

  • 从字符串创建可变长度数组

    字符串 string a b c d 应该创建一个像这样的数组 array a gt array b gt array 我想出了这个 function create array arr string data parts explode s
  • Webpack 警告:您可能需要适当的加载器来处理此文件类型 (date-nfs)

    我的应用程序有问题 我有一个网站 我使用 date fns 根据用户语言显示格式化日期 它工作得很好 但我更新了 date fns 从那以后我收到了一个警告 在我的 JavaScript 代码中我使用 const locale requir
  • 尝试/捕获或验证速度?

    我正在使用 Python 每当我必须验证函数输入时 我都会假设输入有效 然后捕获错误 就我而言 我有一个通用的Vector 我用它来做一些不同的事情 其中 之一就是加法 它的功能既是Color 类并作为Vector 所以当我向Color 它
  • 如何在 Android 中从全名中拆分名字和姓氏字符串

    我有一张带有全名的表格EditText字段 我想将字符串分解为名字和姓氏字符串 谁可以帮我这个事 我可以知道实现我的目标的正确方法是什么吗 如果用户输入他 她的名字 例如A B C 名字将是A 姓氏遗嘱BC 我正在尝试这个 EditText
  • 在 google chrome 版本 54 中,禁用字段是不可选择的

    似乎在上次 google chrome 版本 54 更新后 我无法通过鼠标文本从我的网站中的禁用字段中进行选择 Text inside this input not selectable by mouse but before it was
  • cuda & rdc & 推入多个共享对象会在 registerEntryFunction 中产生 SIGSEV

    我正在尝试在两个共享库中运行可重定位设备代码 两者都使用 cuda thrust 如果我停止在 kernel cu 中使用推力 一切都会正常运行 这不是一个选项 编辑 如果 rdc 被禁用 该程序也可以工作 对我来说也不是一个选择 它编译得
  • 如何在 HTML 工具提示中使用回车符?

    我目前正在向我们的网站添加详细的工具提示 并且我希望 无需求助于出色的 jQuery 插件 我知道有很多 使用回车符来格式化工具提示 要添加提示 我正在使用title属性 我浏览了常用网站并使用了以下基本模板 a title link wi
  • c# 在html中查找图像并下载它们

    我想下载存储在 html 网页 中的所有图像 我不知道将下载多少图像 并且我不想使用 HTML AGILITY PACK 我在谷歌中搜索 但所有网站都让我更加困惑 我尝试了正则表达式 但只有一个结果 人们给了你正确的答案 你也不能挑剔和懒惰
  • dplyr 查找表/模式匹配[重复]

    这个问题在这里已经有答案了 我一直在寻找一种聪明的或 更整洁 的方式来利用 tidyverse 中的查找表 但找不到令人满意的解决方案 我有一个数据集和查找表 Sample data data lt data frame patients
  • Azure 数据工厂通过访问密钥连接到 Blob 存储

    我正在尝试在 Azure 数据工厂中构建一个非常基本的数据流 从 blob 存储中提取 JSON 文件 对某些列执行转换 然后存储在 SQL 数据库中 我最初使用托管身份对存储帐户进行身份验证 但在尝试测试与源的连接时收到以下错误 com
  • 使用 Laravel 5.2 的内置身份验证将旧的 md5 密码迁移到 bcrypt

    我正在将旧的 PHP 应用程序迁移到 Laravel 5 2 该应用程序有一个巨大的用户表 大约 50K 用户 密码都是 MD5 哈希值 显然这是不可接受的 但我不想向所有 50 000 个用户发送电子邮件要求他们重置密码 而是想在幕后将密
  • 尽管有定义,但我有一个编译器错误“未定义”

    from gasp import GRID SIZE 30 MARGIN GRID SIZE BACKGROUND COLOR color BLACK Colors we use WALL COLOR 0 6 255 0 9 255 0 9
  • Gremlin 掉落多个顶点

    我正在尝试删除给定 Gremlin 查询返回的所有顶点 目标是删除作为特定顶点的子级的所有子顶点 这是一个例子 gremlin gt g V dcb26be6 8d39 ae81 6ef2 6f60d06bce10 emit repeat
  • 非轮询/非阻塞定时器?

    到目前为止我发现的最好的解决方案就是使用sleep 功能 我想在计时器到期事件发生时运行我自己的回调函数 有没有什么事件驱动的方法可以解决这个问题 from time import sleep Sleep for a minute time
  • 在 Haskell 中创建除数列表而不按顺序除法

    我正在哈斯克尔学习 我一直在实现一个制作除数列表的函数 我的第一个代码在这里 Code divisors Integral a gt a gt a divisors n n lt 1 otherwise filter 0 mod n 1 n
  • JavaScript 正则表达式 - 正向前瞻 - 给我语法错误

    这段正则表达式 lt href 应该匹配 href 值中的所有内容 除了哈希值及其在 href url 中跟随的内容 它似乎在正则表达式调试器 测试器下工作正常 例如http gskinner com RegExr http gskinne
  • @SelectProvider中mybatis参数替换是如何工作的

    我继承了一些我试图理解的代码以及我为找到一些东西所做的任何搜索 SelectProvider结果什么也没有 Java DAO SelectProvider type CategoryDaoSelectProvider class metho
  • 使用 Azure 部署应用程序时出现“未知生命周期阶段“mvn”。您必须指定有效的生命周期阶段或目标”

    我正在尝试使用 Azure Devops 在云中心部署 mule 应用程序 在尝试部署应用程序时 我正在运行一个作业 其中有一个 Maven 任务 该任务假设运行 Maven 命令 mvn 包部署 DmuleDeploy Dcloud en
  • Pygame:key.get_pressed() 与事件队列不一致

    我正在尝试使用 Python 中的 pygame 为应用程序制定简单的控件 我已经掌握了基础知识 但我遇到了奇怪的困难 我使用箭头键来控制我的角色 如果我按住一个箭头键 然后按住另一个箭头键 对角线移动 角色将按预期移动 但是 如果我释放s
  • 使用 React Router v4 的 IIS 规则

    我正在尝试使用 BrowserRouter 让我的路由与 IIS 和 React Router v4 一起使用 在我的本地主机上 我的所有路由都按预期工作 React Router 按照我想要的方式处理一切 http www example