url重写规则以动态解析url

时间:2019-04-24 07:45:08

标签: url-rewriting iis-8

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

        <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”之后的位作为结束点并将其作为查询字符串发送到文件中?

例如

/纽约至得克萨斯州

将发送以下查询字符串:

from = newyork&to = texas

1 个答案:

答案 0 :(得分:1)

请您分享500错误的详细错误消息。如果您想达到/ newyork-to-texas到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>

enter image description here

关于, 贾帕。