Apache.htaccess将规则重写为IIS web.config规则

Apache.htaccess将规则重写为IIS web.config规则,.htaccess,iis,url-rewriting,web-config,.htaccess,Iis,Url Rewriting,Web Config,我正在将一个PHP应用程序从Apache移动到IIS服务器。我正在尝试转换以下.htaccess规则: RewriteEngine On RewriteRule ^(.*)$ public/$1?%{QUERY_STRING} [QSA,L] 它只是将所有请求(以及查询字符串)重定向到公共子目录 我在web.config文件中尝试了如下内容- <?xml version="1.0" encoding="UTF-8"?> <configuration> <s

我正在将一个PHP应用程序从Apache移动到IIS服务器。我正在尝试转换以下.htaccess规则:

RewriteEngine On
RewriteRule ^(.*)$ public/$1?%{QUERY_STRING} [QSA,L]
它只是将所有请求(以及查询字符串)重定向到公共子目录

我在web.config文件中尝试了如下内容-

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
    <rewrite>
        <rules>
            <rule name="Root Hit Redirect" stopProcessing="true">
                <match url="^$" />
                <action type="Redirect" url="/public/index.php" />
            </rule>
        </rules>
    </rewrite>
</system.webServer>
</configuration>


但它不断陷入重定向循环。在这种情况下,什么是正确的web.config规则?

通过在IIS中导入规则来解决此问题