请求编写IIS Rewrite规则:为不含api/v1的URL添加该前缀
IIS Rewrite规则实现无api/v1前缀URL的自动重写
以下是满足需求的web.config重写规则配置,直接将这段代码添加到你的web.config文件的<system.webServer>节点内即可:
<system.webServer> <rewrite> <rules> <rule name="Add api/v1 Prefix" stopProcessing="true"> <!-- 匹配所有不包含api/v1前缀的URL路径 --> <match url=".*" /> <conditions> <!-- 排除已包含api/v1前缀的请求 --> <add input="{REQUEST_URI}" pattern="^/api/v1/" negate="true" /> <!-- 可选:排除静态文件请求(如css/js/png等),如果你的API不需要处理这些文件的话 --> <!-- <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /> --> <!-- <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" /> --> </conditions> <!-- 将请求重写为带api/v1前缀的路径 --> <action type="Rewrite" url="api/v1/{R:0}" /> </rule> </rules> </rewrite> </system.webServer>
关键配置说明:
name="Add api/v1 Prefix":规则名称,用于标识这条重写规则,可自定义。match url=".*":匹配所有URL路径。<conditions>节点:input="{REQUEST_URI}" pattern="^/api/v1/" negate="true":指定仅当请求的URI不以/api/v1/开头时,才执行重写操作。negate="true"表示对匹配结果取反。- 注释掉的两行是可选配置,如果你的API不需要处理静态文件或目录请求,可以取消注释,避免对这类请求执行重写。
<action type="Rewrite" url="api/v1/{R:0}" />:将匹配到的原始URL路径({R:0}代表完整的匹配内容)拼接在api/v1/之后,完成重写。stopProcessing="true":执行完这条规则后停止后续规则的处理,避免不必要的规则触发。
内容的提问来源于stack exchange,提问作者karim magdy
相关产品推荐
相关产品推荐

