.htaccess的IIS重写库

.htaccess的IIS重写库,iis,mod-rewrite,Iis,Mod Rewrite,在IIS中,RewriteBase不起作用。因此,下面的.htaccess规则已转换为IIS web配置。但在IIS中,它给出了400个错误的请求错误。我需要纠正什么 Htaccess规则 RewriteRule api/(.*)$ api.php?request=$1 [QSA,NC,L] IIS转换规则 <rule name="Imported Rule 1" stopProcessing="true"> <match url="api/(.*)$"/>

在IIS中,
RewriteBase
不起作用。因此,下面的
.htaccess
规则已转换为IIS web配置。但在IIS中,它给出了400个错误的请求错误。我需要纠正什么

Htaccess规则

RewriteRule api/(.*)$ api.php?request=$1 [QSA,NC,L]
IIS转换规则

<rule name="Imported Rule 1" stopProcessing="true">
    <match url="api/(.*)$"/>
    <action type="Rewrite" url="api.php?request={R:1}" appendQueryString="true"/>
</rule> 

假设您的
RewriteBase
指令设置如下:

RewriteBase /subdir
然后,您只需将此“前缀”附加到目标URL的开头(即IIS指令中的
RewriteRule
substitution或
URL
属性值)。具体来说,它应该只作为相对替换字符串的前缀

例如:

RewriteRule api/(.*)$ /subdir/api.php?request=$1 [QSA,NC,L]
换言之:

<action type="Rewrite" url="/subdir/api.php?request={R:1}" appendQueryString="true"/>

如果设置了
RewriteBase/
,则只需使用一个斜杠作为前缀,例如
url=“/api.php?request={R:1}”


这就是
RewriteBase
指令所做的一切。当在目录上下文中使用时,它为相对路径替换设置URL前缀。

假设您的
RewriteBase
指令设置如下:

RewriteBase /subdir
然后,您只需将此“前缀”附加到目标URL的开头(即IIS指令中的
RewriteRule
substitution或
URL
属性值)。具体来说,它应该只作为相对替换字符串的前缀

例如:

RewriteRule api/(.*)$ /subdir/api.php?request=$1 [QSA,NC,L]
换言之:

<action type="Rewrite" url="/subdir/api.php?request={R:1}" appendQueryString="true"/>

如果设置了
RewriteBase/
,则只需使用一个斜杠作为前缀,例如
url=“/api.php?request={R:1}”


这就是
RewriteBase
指令所做的一切。当在目录上下文中使用时,它为相对路径替换设置URL前缀。

#IIS转换规则启用FRT并读取其内容。您能分享您在URL中传递的内容吗?您启用了追加查询字符串,如果在URL中输入,该字符串将添加查询字符串。另外,请澄清您的具体要求。#IIS转换规则启用FRT并阅读其中所述内容。您能分享您在URL中传递的内容吗?您启用了追加查询字符串,如果在URL中输入,该字符串将添加查询字符串。另外,请澄清您的确切要求。