简体   繁体   中英

Creating a IIS Url Rewrite/Redirect

Im struggling to get a url rewrite/redirect to work in IIS. I've installed the url rewrite module and all the rules fail to do anything. Here is the scenario, we want all web requests which generate a report to be pushed off to a secondary server so it doesn't harm the main box. The web requests that generate reports look something like this:

http://mywebaddress/api/Actionname=GenerateReport&param=123

So im wanting to do some type of regex check on finding any web requests that have "GenerateReport" in it and redirect it to something like:

http://mywebaddressofsecondserver/api/Actionname=GenerateReport&param=123

Any ideas on how the redirect/rewrite would go for this?

You need to check if REQUEST_URI contains Actionname=GenerateReport .
If so, you'll redirect it to other webserver url equivalent .

Translated to an IIS rewrite rule, it would look like this

<rule name="Delegate report generation" stopProcessing="true">
   <match url="^(.*)$" />
   <conditions>
      <add input="{REQUEST_URI}" pattern="Actionname=GenerateReport" />
   </conditions>
   <action type="Redirect" url="http://mywebaddressofsecondserver/{R:1}" />
</rule>

Thanks, Justin Iurman,

Your answer solved my issue of getting methods

http://mywebaddress/api/Param/Action1 http://localserverwithport/api/Param/Action1

but for below Post methods it's still giving 404 not found

http://mywebaddress/api/Param/PostAction2 http://localserverwithport/api/Param/PostAction2

Post parameters are: {"Param1":"James","Param2":"jani"}

My implementation is

'<system.webServer>
        <rewrite>
            <rules>            
               <rule name="Rewrite Rule1" >
                    <match url="^(.*)" />                    
                    <action type="Redirect" url="http://localserverwithport/{R:1}" />
                </rule>             
            </rules>
        </rewrite>
</system.webServer>'

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM