我一直在努力理解IIS 8. 5中的重写规则,希望得到一些帮助。基本上对于React应用程序,我需要重写所有的url以在indexiderhtml加上可选的queryparams中输入。
React应用程序必须存在于Web服务器的子目录中,因为它只是主站点的一个扩展
因此,除了资产(文件夹)、静态(文件夹)和manifest.json(文件)之外,我不需要它来重写URL。这些将落入
- (文件夹或文件以及index.html)
所有路由也将从这里开始,参见2个示例:
- 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>
通过一个简单的重写和没有条件的条件,我可以让它工作,但我更愿意只使用几个规则。
注意:我忘记了某些资产是来自生产服务器的。2而那是在重写url的一部分!
最后裁定:
<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>
2条答案
按热度按时间fae0ux8s1#
您可以使用以下URL重写规则:
注意:如果您想匹配您的应用程序或网站的子目录,您可以根据您的要求设置条件。或者您可以共享您的网站文件夹结构,以便我们可以帮助您更多。
问候你,Jalpa
628mspwn2#
你可以在web.config文件中使用下面的URL重定向
这将添加新的IIS重定向规则