Search code examples
regexiis-7url-rewritingisapi-rewriteurl-rewrite-module

IIS rewrite rule to check for querystring and add it if its not there


I'm trying to make a IIS URL rewrite rule that appends an URL parameter to the URL. The url parameter is hssc. So, any url that is processed through the server, needs that parameter. Keeping in mind that some urls will have their own params already, and other urls won't, and root urls, etc, sometimes it will need to add ?hssc=1 or &hssc= - so, if I have a URL that is as such:

I also want it that the URL should not be hidden (as in a backend rewrite behind the scenes). I need the URL to appear in the URL, so when users copy the URL, or bookmark it, the parameter is there.

I've set the condition to match it \&hssc|\?hssc - now I just need a way to write the URL, so it appears and keeps the part of the original URL that is already there.


Solution

  • Figured this out - the rule will be set up as such:

    <rewrite>
                <rules>
                    <rule name="sigh" patternSyntax="ECMAScript" stopProcessing="true">
                        <match url="(.*)" negate="false" />
                        <action type="Redirect" url="{PATH_INFO}?hssc=1" />
                        <conditions>
                            <add input="{QUERY_STRING}" pattern="^hssc=|\?hssc=|\&amp;hssc=" negate="true" />
                        </conditions>
                    </rule>
                </rules>
            </rewrite>