【问题标题】:Redirect in IIS 7.5/8 with regular expression使用正则表达式在 IIS 7.5/8 中重定向
【发布时间】:2023-03-15 17:02:01
【问题描述】:

我需要重定向很多 URL,如下所示

http://localhost/OmniService/foto/18443151-810079.jpg

所以,在我的 web.config 中,我设置了以下正则表达式:

<rewrite>
    <providers>
        <provider name="DB" type="DbProvider, Microsoft.Web.Iis.Rewrite.Providers, Version=7.1.761.0, Culture=neutral, PublicKeyToken=0545b0627da60a5f">
            <settings>
                <add key="ConnectionString" value="Driver={SQL Server Native Client 10.0};Data Source=localhost\sqlexpress;Initial Catalog=RewriteDB;Integrated Security=True;Server=localhost;uid=sa;pwd=working2014" />
                <add key="StoredProcedure" value="RewriteDB.dbo.GetRewrittenUrl" />
                <add key="CacheMinutesInterval" value="0" />
            </settings>
        </provider>
    </providers>
    <rules>
        <rule name="DbProviderTest" stopProcessing="true">
            <match url="(OmniService/foto/([0-9]+)-([0-9]+).jpg)" />
            <!--<conditions>
                <add input="{DB:{R:1}}" pattern="(.+)" />
            </conditions>-->
            <action type="Redirect" url="(Omniservice/foto/2017/02/02/18443151-810079.jpg)" />
        </rule>
    </rules>
</rewrite>

但它没有被捕获,尽管用 IIS 测试说没问题:

如果我使用&lt;match url="(.*)" /&gt;,那么我将被重定向到更正后的新 URL,但仍然没有显示任何内容,因为它表示重定向太多。

【问题讨论】:

    标签: asp.net sql-server url redirect iis


    【解决方案1】:

    该规则对我有用,但它会将我重定向到http://localhost/(Omniservice/foto/2017/02/02/18443151-810079.jpg),也许您需要从操作节点中的 url 属性中删除 ()?您甚至没有看到带有上述规则的 301 重定向吗?

    【讨论】:

    • 没用。这就是我现在得到的:HTTP ERROR 500 我也尝试过使用 FileMapProvider 而不是数据库,但是……什么都没有。网址始终是旧网址,不会重定向,
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-13
    • 2020-06-10
    • 2021-01-19
    • 1970-01-01
    • 2018-03-14
    • 1970-01-01
    相关资源
    最近更新 更多