Hi Jon:
Here is what I think is happening.
When the browser requests the ~/products/ directory, IIS sees the
request is for a directory, checks the settings for the directory and
moves the request to the default document (default.aspx) since the
file exists on the file system. ASP.NET actually does see the URL as
~/products/default.aspx, because IIS has moved the request to this
location all by itself.
There are ways to get the original request (for the products
directory), which would be to make all requests go through the asp.net
runtime (enter a * in the script mapping). Then you really could
redirect from ~/products/ to /somedirectory/somepage.aspx, the problem
is I'm not sure how to get the action tag set correctly. You might
need to do something along the lines of:
http://weblogs.asp.net/jezell/archiv.../15/90045.aspx
to pull this off.
I hope to get some time to experiment with this interesting problem
this weekend.
--
Scott
http://www.OdeToCode.com/
On Fri, 8 Oct 2004 17:46:27 +0100, "Jon Maz" <jonmaz@surfeuNOSPAM.de>
wrote:
[color=blue]
>Hi All,
>
>I am experimenting with URL Rewriting using the techniques outlined by Scott
>Mitchell in his article "URL Rewriting in ASP.NET"
>(
http://msdn.microsoft.com/library/de...-us/dnaspp/htm
>l/urlrewriting.asp).
>
>In the article he mentions a problem with postbacks: "If the URLs you are
>rewriting contain a server-side Web Form and perform postbacks, when the
>form posts back, the underlying URL will be used". His solution is to use a
>custom ActionlessForm derived from System.Web.UI.HtmlControls.HtmlForm, but
>with the "action" attribute removed.
>
>An alternative solution is outlined by Scott Allen in his blog entry "The
>Passion and the Fury of URL Rewriting"
>(
http://odetocode.com/Blogs/scott/arc...9/22/509.aspx). He proposes
>simply adding the following to Page_Load:
> Context.RewritePath(Request.RawUrl);
>
>However in my experimenting, it seems that neither of these solutions works
>in one particular situation, and I'm wondering if anyone out there can help
>out.
>
>The situation is:
> Redirect from: ~/products/
> Redirect to: ~/Somedirectory/Somepage.aspx
> Note that the "Redirect from" url does *not* contain a page name.
>
>I have got this working fine for the first time the page is hit, having
>created a /products sub-folder containing an empty Default.aspx page.
>
>The problem is, when Somepage.aspx posts back to itself, using Scott Allen's
>technique described above, the URL is rewritten *not* to ~/products/ (which
>is what I want), but to ~/products/Default.aspx. While this is better than
>the URL being rewritten to ~/Somedirectory/Somepage.aspx on postback, it
>still isn't perfect!
>
>And using Scott Mitchell's ActionlessForm, I get: "HTTP 405 - Resource not
>allowed, The page you are looking for cannot be displayed because the page
>address is incorrect". This is quite a long way from perfect.
>
>Can anyone help?
>
>TIA,
>
>JON
>
>[/color]