I have url rewrite rules which redirect www.domain2.com to a subfolder under the root of a domain1.com (let\'s call this folder subproject). In my controller, I need to cons
You should be able to find it in Request.RawUrl.
Here is a good way to get the current directory even when using rewrite.
I needed this to cache some resources in localStorage for an offline web app. With asp.net mvc, the page parameters are written as subdirecties under a page which causes the relative paths to change. Therefore, I needed the absolute path as a key for the resource in the localStorage.
Anyway, here it is:
var applicationRoot = new System.Uri(Request.Url, Href("~"));
var rawURl = Request.RawUrl;
var rawUrlAbsolute = new System.Uri(serverRoot, rawURl);
var relativeToCurrentPath = Href("SOMETHING_DOESNT_MATTER/../");
var clientPathAbsolute = new System.Uri(rawUrlAbsolute, relativeToCurrentPath);
var clientPathAbsoulteStr = clientPathAbsolute.AbsoluteUri;
This took me many attempts to figure out. Here is an example using my website:
// applicationRoot = http://www.toldpro.com/
// rawURl = /Apps/GreekBible/App/A/B/C
// rawUrlAbsolute = http://www.toldpro.com/Apps/GreekBible/App/A/B/C
// relativeToCurrentPath = ../../../
// clientPathAbsolute = http://www.toldpro.com/Apps/GreekBible/
// clientPathAbsoulteStr = http://www.toldpro.com/Apps/GreekBible/
// applicationRoot = http://greekbible.toldpro.com/Apps/GreekBible/
// rawURl = /App/A/B/C
// rawUrlAbsolute = http://greekbible.toldpro.com/App/A/B/C
// relativeToCurrentPath = ../../../Apps/GreekBible/
// clientPathAbsolute = http://greekbible.toldpro.com/Apps/GreekBible/
// clientPathAbsoulteStr = http://greekbible.toldpro.com/Apps/GreekBible/
For more information about this, the following is the rewrite rule I used:
// Rewrite:
// http://greekbible.toldpro.com/App/* (Client)
// to
// http://www.toldpro.com/Apps/GreekBible/App/* (Actual)
<rule name="Subdomain rewriter" stopProcessing="true">
<match url="App/(.*)" />
<conditions>
<add input="{HTTP_HOST}" pattern="^www\.toldpro\.com$" negate="true" />
<add input="{HTTP_HOST}" pattern="^greekbible\.toldpro\.com$" />
</conditions>
<action type="Rewrite" url="/Apps/GreekBible{URL}" />
</rule>