微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

IIS 问题与 urlrewrite

如何解决IIS 问题与 urlrewrite

我正在尝试为我的 API 设置 urlrewrite。 现在我的网站就像:

cookhamburger.PHP?topping=mayo&how=grill
cookpasta.PHP?topping=ragu&how=aldente

鉴于我有许多实用程序已经绑定到这些 url,我想保持兼容,但我也想扩展我的网站。

因此我制作了一个以“食物”为参数的通用处理程序

cooksomething.PHP?what=pasta&topping=ragu&how=aldente

为了实现这一点,我必须使用像这样的正则表达式将旧的 url 重新映射到新的处理程序

cook(.*)\.PHP\?(.*)

匹配它 和如下重映射

cooksomething.PHP?what={R:1}&{R:2}

现在我的问题是,一旦我转到网址:

http://localhost/cookhamburger.PHP?topping=mayo&how=grill

我有一个错误

Modulo «module»            IIS Web Core
Notifica                   MapRequestHandler
Gestore «handler»          PHP 
Codice errore «error»      0x80070002

这是我用于损坏配置的 web.config

    <configuration>
        <system.webServer>
            
            <rewrite>
                <rules>
                    <clear />
                    
                    <rule name="Handler remap" stopProcessing="true">
                        <match url="^cook(.*)\.PHP\?(.*)" ignoreCase="true" />
                        <conditions logicalGrouping="MatchAny" trackAllCaptures="false">
                            <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
                            <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
                        </conditions>
                        <action type="Rewrite" url="cooksomething.PHP?what={R:1}&amp;{R:2}" appendQueryString="false" />
                    </rule>
                    
                </rules>
            </rewrite>
        </system.webServer>
    </configuration>

但是下面的重映射,例如

(.*)\?(.*)

cooksomething.PHP?{R:1}&{R:2}

/hamburger?topping=mayo

作品

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。