Issue with redirection in IIS? - iis

I have the following rule in IIS
<rewrite>
<rules>
<rule name="ReverseProxyInboundRule1" patternSyntax="ExactMatch" stopProcessing="true">
<match url="apex" />
<action type="Redirect" url="http://{HTTP_HOST}:8080/ords/f?p=1" logRewrittenUrl="true" />
</rule>
</rules>
</rewrite>
This rule works fine and redirects URL's from
www.example.com/apex
to
www.example.com:8080/ords/f?p=1
I would like to get an URL without the port 8080 in it. So, when I change the rule type to Rewrite. It doesn't work any more. It ommits the port and I'm getting the error : 404 - File or directory not found
Does anyone know how to solve that please ?
Thanks.
Regards,

I guess you are getting 404.4. If you didn't enabled detailed error message for your website. Then you will get 404 File or directory not found.
Please install failed request tracing
https://www.microsoft.com/en-us/download/details.aspx?id=47333.
Then go to IIS manager->server node->application request routing cache->server proxy setting->enable proxy.

Related

How to rewrite a domain to another one in IIS 10?

I have the following website configuration on IIS 10.
<rewrite>
<rules>
<rule name="Rule1">
<match url=".*" />
<action type="Rewrite" url="https://www.google.com/{R:0}" />
</rule>
</rules>
</rewrite>
I'm trying to rewrite all the requests sent to mydomain.com to google.com (taken as an example)
When running the website, I'm getting the following google error page in the screenshot. Means the rewrite is not behaving properly and doesn't send requests to the domain www.google.com
Can anyone help please ?
Thanks. Regards,

How to rewrite one image with another in IIS using URLRewrite

Here is my problem, I need to rewrite one image with another (don't ask why).
Simple URLRewrite rule is not working.
Every time someone fetch this URL: http://example.com/images/001.jpg
IIS should show 002.jpg (http://example.com/images/002.jpg)
web.config:
<rules>
<rule name="img1" stopProcessing="true">
<match url="images/001.jpg" />
<action type="Rewrite" url="images/002.jpg" appendQueryString="false" />
</rule>
</rules>
I tested your URL rewrite rule and it works normally on my side.
So please try to clear your browser’s cache and try again.
And do you get any errors? If not, you can only use FRT to view detailed messages.

IIS Removal of Server information header

I have written the following url rewrite module to remove server version information in response header.
<rewrite>
<outboundRules>
<rule name="Remove Server header">
<match filterByTags="None" serverVariable="" pattern=".+" />
<action type="Rewrite" value="" />
</rule>
</outboundRules>
</rewrite>
This is working fine in normal flows.
However when an error page(like 500 or 404) is rendered I am able to see the IIS version information.
I need to know how to handle this rewrite for error pages as well.
Any suggestions would be appreciated
why not just create a custom error page, that way yo can make it look however you want

URL rewrite in IIS 8.5 is not working I'm getting 404 instead

Hi I've configured a rewrite rule on my IIS but it seems like it never gets fired I've been working on this for several hours without any luck this is my rule in the web config of the appplication:
<rewrite>
<rules>
<rule name="Rewrite frienly url to snapshot" stopProcessing="true">
<match url="/(localhost:2934)\/trabajos\/([\w-]+)\/([\w-|\-]+)" />
<action type="Rewrite" url="\/snapshots/{R:2}.html" logRewrittenUrl="true" />
</rule>
</rules>
</rewrite>
my URL is the following:
http://localhost:2934/trabajos/3ba2a9e4/some-cool-title
'
and I want to rewrite as:
http://localhost:2934/snapshots/3ba2a9e4.html
this is the result I get from testing the pattern in the IIS:
to me seems to be ok
but when testing the URL in the browser, I feel like the rule never gets fired, in fact, I've configured to trace failed request like this tutorial and I don't get any error or file in the logs folder.
ex: C:\inetpub\logs\FailedReqLogFiles
I'm getting a 404 error instead and it's logged like this:
2015-03-28 18:56:11 ::1 GET /trabajos/3ba2a9e4/some-cool-tile - 2934 - ::1 Mozilla/5.0+(Windows+NT+6.3;+Win64;+x64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/42.0.2311.60+Safari/537.36 - 404 0 2 4
2015-03-28 18:56:15 ::1 GET /trabajos/3ba2a9e4/some-cool-title - 2934 - ::1 Mozilla/5.0+(Windows+NT+6.3;+Win64;+x64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/42.0.2311.60+Safari/537.36 - 404 0 2 2
any ideas?
I have the same issue, I got 404 error after setting URL rewrite rules in IIS.
Finally I found that I need to open the Reverse Proxy by click following item.
Seems like I had the same issue as this question I changed the url pattern and removed the slash at the begening of the path.
this is rule that works:
<rewrite>
<rules>
<rule name="Rewrite frienly url to snapshot" stopProcessing="true">
<match url="trabajos\/([\w-]+)\/([\w-|\-]+)" />
<action type="Rewrite" url="snapshots/{R:1}.html" logRewrittenUrl="true" />
</rule>
</rules>
</rewrite>

IIS7 rewrite for REST not working

I have a REST service and am trying to remove the .svc - a common task/problem.
The application on the server is in a virtual directory under the default website (not sure if this is important)
I have installed the IIS Rewrite Module and have tried to create a rewrite rule for this.
http://blah.me.com/here/thingys/get?id=1111
to rewrite to this:
http://blah.me.com/service.svc/thingys/get?id=1111
In my web.conf the following is created:
<rewrite>
<rules>
<rule name="GEAPI /here/ to /service.svc/">
<match url="^(.*?)/here/(.*)$" />
<action type="Rewrite" url="{R:1}/service.svc/{R:2}" />
</rule>
</rules>
</rewrite>
In the GUI the regular expression does test correctly.
However - when I run this in a browser on the server, it gives the following 404 error:
Error Code 0x80070002
Requested URL http://blah.me.com:80/here/thingys/get?id=1111
Physical Path C:\MyApp\here\thingys\get
C:\Myapp is the correct physical directory the virtual directory in IIS is pointing to.
Is there something I am missing here ? I have tried creating this rule under both the default website and the app, both separately and together.
Big thanks
P
You could use this:
<rewrite>
<rules>
<rule name="GEAPI /here/ to /service.svc/">
<match url="^(.*)here(/.+)" />
<action type="Rewrite" url="{R:1}service.svc{R:2}" />
</rule>
</rules>
</rewrite>
IIS will only give you the part of the URI that's after http://blah.me.com/

Resources