Permanent redirection in ASP.net - asp.net

I want to redirect below URL
http://www.abc.com/preview.asp?type=content&id=237#logo
to
http://www.abc.com/preview.aspx#logo
Any idea about rewrite rules like :
<rule name="Home Document" stopProcessing="true">
<match url="^visiting.aspx$" />
<conditions>
<add input="{QUERY_STRING}" pattern="^utm_source=invite%2B&utm_medium=Email%2B&utm_campaign=exhibitor$" />
</conditions>
<action type="Redirect" url="http://www.abc.com/visiting.aspx" appendQueryString="false"/>
</rule>
Thanks

You need to add redirectType="Permanent" to generate a 301 status code:
<rule name="Home Document" stopProcessing="true">
<match url="^visiting.aspx$" />
<conditions>
<add input="{QUERY_STRING}" pattern="^utm_source=invite%2B&utm_medium=Email%2B&utm_campaign=exhibitor$" />
</conditions>
<action type="Redirect" url="http://www.abc.com/visiting.aspx" appendQueryString="false" redirectType="Permanent"/>
</rule>

Related

Redirect Http to Https in web.config Return not found

I want to redirect this club.mysite.com to https://club.mysite.com.
i wrote this code in web.config:
<rule name="Redirect to https" stopProcessing="true">
<match url=".*" />
<conditions>
<add input="{HTTPS}" pattern="off" ignoreCase="true" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" redirectType="Permanent" appendQueryString="false" />
</rule>
i used IIS10.any solution ?

ASP.Net Url Rewrite Url Having too many redirects

I have a website that has .aspx files sitting inside folders and the current path to the page would be something like /giveaway/giveaway.aspx. I added a url rewrite rule to auto direct the user to the said page when the user enters somedomain.com/giveaway, however i'm getting a error
`This page isn’t working
`somedomain.com redirected you too many times.`
Can someone tell me what am i doing wrong here? Below is my rules
<rewrite>
<rules>
<rule name="Redirect to HTTPS">
<match url="(.*)" />
<conditions>
<add input="{HTTPS}" pattern="off" ignoreCase="true" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" redirectType="Permanent" appendQueryString="false" />
</rule>
<rule name="Giveaway" stopProcessing="true">
<match url="^giveaway*" />
<action type="Rewrite" url="/giveaway" appendQueryString="false" />
</rule>
<rule name="GiveawayRedirect" stopProcessing="true">
<match url="^giveaway*" />
<action type="Redirect" url="/Giveaway/giveaway.aspx" appendQueryString="false" redirectType="Permanent" />
</rule>
</rules>
<outboundRules>
<rule name="Add SameSite" preCondition="No SameSite">
<match serverVariable="RESPONSE_Set_Cookie" pattern=".*" negate="false" />
<action type="Rewrite" value="{R:0}; SameSite=strict" />
<conditions>
</conditions>
</rule>
<preConditions>
<preCondition name="No SameSite">
<add input="{RESPONSE_Set_Cookie}" pattern="." />
<add input="{RESPONSE_Set_Cookie}" pattern="; SameSite=strict" negate="true" />
</preCondition>
</preConditions>
</outboundRules>
</rewrite>
since my path was /giveaway/giveaway it was looping since it used to find the keyword multiple times. I changed my path to /contest/giveaway and now when the user types "/giveaway" it redirects to /contest/giveaway and works properly.
here is my rule
<rule name="GiveawayRedirect" stopProcessing="true">
<match url="^giveaway*" />
<action type="Redirect" url="/contest/giveaway" appendQueryString="false" redirectType="Permanent" />
</rule>

Redirect Url to new Url with ignoring parameters in web.config

i want to redirect my old url (../Galary.aspx?cat=10) to new url(../jacket-style-gallery) but it appends old parameters.
<rule name="rule9" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{QUERY_STRING}" pattern="cat=10" />
</conditions>
<action type="Redirect" url="./jacket-style-gallery" appendQueryString="false"/>
</rule>
So it redirect to "../jacket-style-gallery?cat=10"
If you want only Galary.aspx
to be redirected then you should use:
<rule name="rule9" stopProcessing="true">
<match url="Galary.aspx" />
<conditions>
<add input="{QUERY_STRING}" pattern="cat=10" />
</conditions>
<action type="Redirect" url="./jacket-style-gallery" appendQueryString="false"/>
</rule>
I just tested on my server and it works.

url rewrite - error This webpage has a redirect loop

I would like to redirect all traffice coming from http://www.example.com to http://www.mysite.com/badreferer.aspx?bad=true
for this i tried to create a rule in web.config file of http://www.mysite.com in IIS7.
<rule name="bad referer" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTP_REFERER}" pattern="(.*)example(.*)" />
</conditions>
<action type="Redirect" url="/badreferer.aspx?bad=true" appendQueryString="false" />
</rule>
But having issue with redirect loop.
Please help.
Thanks.
Try this:
<rules>
<rule name="bad referer" stopProcessing="true">
<match url="^(.*)" />
<conditions>
<add input="{HTTP_REFERER}" pattern="http://www.example.com(.*)" negate="true" />
</conditions>
<action type="Redirect" url="http://www.website.com/badreferer.aspx?bad=true" />
</rule>
</rules>
update:
<rule name="bad referer" stopProcessing="true">
<match url=".*" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="true">
<add input="{REQUEST_URI}" pattern="/badreferer\.aspx?bad=true" negate="true" />
<add input="{HTTP_REFERER}" pattern="^www.\example\.com.*" />
</conditions>
<action type="Redirect" url="/badreferer.aspx?bad=true" appendQueryString="false" />
</rule>

IIS7 redirect https to http except 1 page

I have a rule
<rule name="HTTPS to HTTP Redirect" enabled="true" stopProcessing="true">
<match url="(.*)" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false">
<add input="{HTTPS}" pattern="on" />
</conditions>
<action type="Redirect" url="http://{HTTP_HOST}/{R:1}" redirectType="Permanent" />
</rule>
that redirects ALL HTTPS to HTTP however I now need 1 page to be HTTPS.
Thanks
Try this. I have assumed your page that is to force HTTPS is login.aspx.
<rewrite>
<rules>
<rule name="Force HTTPS for 1 page " stopProcessing="true">
<match url="(.*)/login.aspx" />
<conditions>
<add input="{HTTPS}" pattern="^OFF$" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}/{R:0}" redirectType="Permanent" />
</rule>
<rule name="Others Force HTTP" stopProcessing="true">
<match url="((.*))" negate="true" />
<conditions>
<add input="{HTTPS}" pattern="^ON$" />
</conditions>
<action type="Redirect" url="http://{HTTP_HOST}{REQUEST_URI}" redirectType="Permanent" />
</rule>
</rules>
</rewrite>
Hi you can try regular expression below: This will match everything with https except for help.html page.
^[hH][Tt]{2}[pP][Ss](?!.*help.html).*$

Resources