gpt4 book ai didi

reactjs - IIS 8.5 重写规则子目录和 ReactJs

转载 作者:行者123 更新时间:2023-12-05 05:10:23 24 4
gpt4 key购买 nike

我一直在努力理解 IIS 8.5 中的重写规则,希望得到一些帮助。基本上对于 React 应用程序,我需要重写所有要在 index.html 中输入的 url 以及可选的查询参数。

React 应用程序必须在 Web 服务器的子目录中运行,因为它只是主站点的扩展

所以但是对于 Assets (文件夹)、静态(文件夹)和 manifest.json(文件)我不需要它来重写 url。这些会落在

  • www.some-site.com/catalog/door-selector/(文件夹或文件以及 index.html)

所有路线也将从这里开始,参见 2 个示例:

  • www.some-site.com/catalog/door-selector/doors
  • www.some-site.com/catalog/door-selector/doors/(门的名称)

所以我想到了以下内容:(不起作用)

<rule name="Door Selector Door" patternSyntax="ExactMatch">
<match url="^catalog/door-selector/.+" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_URI}" pattern="^~/static/~(.*)" negate="true" />
<add input="{REQUEST_URI}" pattern="^~/assets/~(.*)" negate="true" />
<add input="{REQUEST_URI}" pattern="^~/manifest.json" negate="true" />
</conditions>
<action type="Rewrite" url="catalog/door-selector/index.html" appendQueryString="true"/>
</rule>

通过简单的重写并且没有条件,我可以让它工作,但我更愿意只用几条规则来完成它。

注意:我忘记了某些 Assets 来自生产服务器。那就是重写部分网址!

最终规则确定:

<rule name="Door Selector React" enabled="true">
<match url="catalog/door-selector/(.*)" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="catalog/door-selector/index.html" appendQueryString="true"/>
</rule>

最佳答案

您可以使用以下 url 重写规则:

 <rule name="React Rewrite" enabled="true" patternSyntax="ECMAScript">
<match url="(.*)" negate="false" />
<action type="Rewrite" url="/index.html" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_URI}" pattern="^(/assets/)" negate="true" />
<add input="{REQUEST_URI}" pattern="^(/static/)" negate="true" />
<add input="{REQUEST_URI}" pattern="manifest.json" negate="true" />
</conditions>
</rule>

注意:如果您想匹配您的应用程序或站点的子目录,您可以根据您的要求设置条件。或者您可以分享您的网站文件夹结构,以便我们为您提供更多帮助。

问候,贾尔帕

关于reactjs - IIS 8.5 重写规则子目录和 ReactJs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56695115/

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