url 重写规则以动态解析 url

url rewrite rule to parse url dynamically

我正在使用重写映射方法来实现我的 seo 友好 urls。

        <rewriteMaps>
            <rewriteMap name="Destinations">
                <add key="/point-a-to-point-b" value="/destination-final.asp?from=point%20a&amp;to=point%20b" />
            </rewriteMap>   
        </rewriteMaps>
            <rules>
            <rule name="Rewrite rule1 for Destinations">
                <match url=".*" />
                <conditions>
                    <add input="{Destinations:{REQUEST_URI}}" pattern="(.+)" />
                </conditions>
                <action type="Rewrite" url="{C:1}" appendQueryString="false" />
            </rule> 
        </rules>

我的问题是我有太多的目的地,不得不为每个目的地写一张地图导致 500 错误。我相信单个 web.config 文件中的地图数量是有限制的。

是否可以使用通配符规则实现此目的?

将解析 url 并使用 "to" 之前的位作为起点,使用 "to" 之后的位作为终点并将其作为查询字符串发送到文件?

例如

/纽约到德州

将发送以下查询字符串:

从=纽约&到=德州

能否请您分享 500 错误的详细错误消息。如果你想实现你的要求 /newyork-to-texas to from=newyork&to=texas 你可以使用下面的 url 重写规则:

<rule name="send value to query string" enabled="true" stopProcessing="true">
                <match url="(.*)" />
                <conditions>
                    <add input="{REQUEST_URI}" pattern="(.*)/(.*)\-to\-(.*)" />
                </conditions>
                <action type="Redirect" url="http://localhost:746/default.aspx?from={C:2}&amp;to={C:3}" appendQueryString="false" />
            </rule>

此致, 贾尔帕