Simple Redirect/Rewrite rule pair results in Infinite Redirect Loop

Topics: Developer Forum, User Forum
Jul 22, 2009 at 9:29 PM

I am trying to set up two working URIs for each page on this website, basically a 'pretty' one that users can easily remember and an 'ugly' one that contains the IDs and query information for the server. When a user goes to the 'ugly' URI it should redirect them to the 'pretty' one and display it in the address bar. When a user goes to the 'pretty' URI (or was just redirected to it) the server side scripting should serve the content for the 'ugly' URI without changing the address bar. Using the .ini code (1):

IterationLimit 2
RedirectRule ^/Ugly\.aspx\?id\=01234\&menuid\=842.*$ /Pretty.aspx [R,I]
RewriteRule ^/Pretty.aspx.*$ /Ugly.aspx?id=01234&menuid=842 [I,L,U]

should produce this behavior if I am reading the manual correctly. However, this instead gives me a Redirect Loop error for the 'pretty' URI and displays the content without the address bar change for the 'ugly' URI. If I instead use the .ini code (2):

IterationLimit 2
RewriteRule ^/Ugly.aspx\?id\=11204\&menuid\=642.*$ /Pretty.aspx [I,U]
RewriteRule ^/Pretty.aspx.*$ /Ugly.aspx?id=11204&menuid=642 [I,L,U]
going to either the 'pretty' or 'ugly' URI brings me to the correct content but does not change the address bar (which it shouldn't, according to the manual).

First, I'm unclear why (1) causes indefinite redirection while (2) doesn't. Second, what needs to be changed in (1) to achieve the desired behavior?

Here is the HTTP header for a request of 'Pretty' URI under (1), which according to LiveHTTP Headers occurs 21 times before the Redirect Loop error:

http://localhost/Pretty.aspx

GET /Pretty.aspx HTTP/1.1
Host: thisdesktop
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US; rv:1.9.0.12) Gecko/2009070611 Firefox/3.0.12
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Cookie: ecm=user_id=0&isMembershipUser=0&site_id=&username=&new_site=/mnet/&unique_id=0&site_preview=0&langvalue=0&DefaultLanguage=1033&NavLanguage=1033&LastValidLanguageID=1033&ContType=&UserCulture=1033&SiteLanguage=1033; ASP.NET_SessionId=wew2i2452oceey45y2gbdm55

HTTP/1.x 302
Date: Wed, 22 Jul 2009 20:18:54 GMT
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
Location: http://localhost/Pretty.aspx
Connection: close
Content-Length: 0


Level 3 Log file for a single request of 'Pretty' URI under (1) follows (line breaks added where likely helpful for readability):

Wed Jul 22 16:12:41 -  5084 - HttpFilterProc: SF_NOTIFY_URL_MAP
Wed Jul 22 16:12:41 -  5084 - HttpFilterProc: SF_NOTIFY_URL_MAP
Wed Jul 22 16:12:41 -  5084 - HttpFilterProc: SF_NOTIFY_AUTH_COMPLETE
Wed Jul 22 16:12:41 -  5084 - DoRewrites
Wed Jul 22 16:12:41 -  5084 - DoRewrites: Url: '/Pretty.aspx'
Wed Jul 22 16:12:41 -  5084 - EvaluateRules: depth=0
Wed Jul 22 16:12:41 -  5084 - EvaluateRules: Rule 1 : -1 (No match)
Wed Jul 22 16:12:41 -  5084 - EvaluateRules: Rule 2 : 1 matches
Wed Jul 22 16:12:41 -  5084 - ApplyCaseConversion: after  '/Ugly.aspx?id=01234&menuid=842'
Wed Jul 22 16:12:41 -  5084 - EvaluateRules: Result (length 38): /Ugly.aspx?id=01234&menuid=842
Wed Jul 22 16:12:41 -  5084 - EvaluateRules: Last Rule
Wed Jul 22 16:12:41 -  5084 - EvaluateRules: returning 1
Wed Jul 22 16:12:41 -  5084 - DoRewrites: Rewrite Url to: '/Ugly.aspx?id=01234&menuid=842'
Wed Jul 22 16:12:41 -  5084 - HttpFilterProc: SF_NOTIFY_AUTH_COMPLETE
Wed Jul 22 16:12:41 -  5084 - DoRewrites
Wed Jul 22 16:12:41 -  5084 - DoRewrites: Url: '/Ugly.aspx?id=01234&menuid=842'
Wed Jul 22 16:12:41 -  5084 - EvaluateRules: depth=0
Wed Jul 22 16:12:41 -  5084 - EvaluateRules: Rule 1 : 1 matches
Wed Jul 22 16:12:41 -  5084 - ApplyCaseConversion: after  '/Pretty.aspx'
Wed Jul 22 16:12:41 -  5084 - EvaluateRules: Result (length 25): /Pretty.aspx
Wed Jul 22 16:12:41 -  5084 - EvaluateRules: returning 302
Wed Jul 22 16:12:41 -  5084 - DoRewrites: Redirect (code=302) Url to: '/Pretty.aspx'
Wed Jul 22 16:12:41 -  5084 - HttpFilterProc: SF_NOTIFY_LOG
Wed Jul 22 16:12:41 -  5084 - HttpFilterProc: SF_NOTIFY_LOG

Wed Jul 22 16:12:41 -   872 - HttpFilterProc: SF_NOTIFY_URL_MAP
Wed Jul 22 16:12:41 -   872 - HttpFilterProc: SF_NOTIFY_URL_MAP
Wed Jul 22 16:12:41 -   872 - HttpFilterProc: SF_NOTIFY_AUTH_COMPLETE
Wed Jul 22 16:12:41 -   872 - DoRewrites
Wed Jul 22 16:12:41 -   872 - DoRewrites: Url: '/Pretty.aspx'
Wed Jul 22 16:12:41 -   872 - EvaluateRules: depth=0
Wed Jul 22 16:12:41 -   872 - EvaluateRules: Rule 1 : -1 (No match)
Wed Jul 22 16:12:41 -   872 - EvaluateRules: Rule 2 : 1 matches
Wed Jul 22 16:12:41 -   872 - ApplyCaseConversion: after  '/Ugly.aspx?id=01234&menuid=842'
Wed Jul 22 16:12:41 -   872 - EvaluateRules: Result (length 38): /Ugly.aspx?id=01234&menuid=842
Wed Jul 22 16:12:41 -   872 - EvaluateRules: Last Rule
Wed Jul 22 16:12:41 -   872 - EvaluateRules: returning 1
Wed Jul 22 16:12:41 -   872 - DoRewrites: Rewrite Url to: '/Ugly.aspx?id=01234&menuid=842'
Wed Jul 22 16:12:41 -   872 - HttpFilterProc: SF_NOTIFY_AUTH_COMPLETE
Wed Jul 22 16:12:41 -   872 - DoRewrites
Wed Jul 22 16:12:41 -   872 - DoRewrites: Url: '/Ugly.aspx?id=01234&menuid=842'
Wed Jul 22 16:12:41 -   872 - EvaluateRules: depth=0
Wed Jul 22 16:12:41 -   872 - EvaluateRules: Rule 1 : 1 matches
Wed Jul 22 16:12:41 -   872 - ApplyCaseConversion: after  '/Pretty.aspx'
Wed Jul 22 16:12:41 -   872 - EvaluateRules: Result (length 25): /Pretty.aspx
Wed Jul 22 16:12:41 -   872 - EvaluateRules: returning 302
Wed Jul 22 16:12:41 -   872 - DoRewrites: Redirect (code=302) Url to: '/Pretty.aspx'
Wed Jul 22 16:12:41 -   872 - HttpFilterProc: SF_NOTIFY_LOG
Wed Jul 22 16:12:41 -   872 - HttpFilterProc: SF_NOTIFY_LOG

Wed Jul 22 16:12:41 -   872 - HttpFilterProc: SF_NOTIFY_URL_MAP
Wed Jul 22 16:12:41 -   872 - HttpFilterProc: SF_NOTIFY_URL_MAP
Wed Jul 22 16:12:41 -   872 - HttpFilterProc: SF_NOTIFY_AUTH_COMPLETE
Wed Jul 22 16:12:41 -   872 - DoRewrites
Wed Jul 22 16:12:41 -   872 - DoRewrites: Url: '/Pretty.aspx'
Wed Jul 22 16:12:41 -   872 - EvaluateRules: depth=0
Wed Jul 22 16:12:41 -   872 - EvaluateRules: Rule 1 : -1 (No match)
Wed Jul 22 16:12:41 -   872 - EvaluateRules: Rule 2 : 1 matches
Wed Jul 22 16:12:41 -   872 - ApplyCaseConversion: after  '/Ugly.aspx?id=01234&menuid=842'
Wed Jul 22 16:12:41 -   872 - EvaluateRules: Result (length 38): /Ugly.aspx?id=01234&menuid=842
Wed Jul 22 16:12:41 -   872 - EvaluateRules: Last Rule
Wed Jul 22 16:12:41 -   872 - EvaluateRules: returning 1
Wed Jul 22 16:12:41 -   872 - DoRewrites: Rewrite Url to: '/Ugly.aspx?id=01234&menuid=842'
Wed Jul 22 16:12:41 -   872 - HttpFilterProc: SF_NOTIFY_AUTH_COMPLETE
Wed Jul 22 16:12:41 -   872 - DoRewrites
Wed Jul 22 16:12:41 -   872 - DoRewrites: Url: '/Ugly.aspx?id=01234&menuid=842'
Wed Jul 22 16:12:41 -   872 - EvaluateRules: depth=0
Wed Jul 22 16:12:41 -   872 - EvaluateRules: Rule 1 : 1 matches
Wed Jul 22 16:12:41 -   872 - ApplyCaseConversion: after  '/Pretty.aspx'
Wed Jul 22 16:12:41 -   872 - EvaluateRules: Result (length 25): /Pretty.aspx
Wed Jul 22 16:12:41 -   872 - EvaluateRules: returning 302
Wed Jul 22 16:12:41 -   872 - DoRewrites: Redirect (code=302) Url to: '/Pretty.aspx'
Wed Jul 22 16:12:41 -   872 - HttpFilterProc: SF_NOTIFY_LOG
Wed Jul 22 16:12:41 -   872 - HttpFilterProc: SF_NOTIFY_LOG

Wed Jul 22 16:12:41 -  4936 - HttpFilterProc: SF_NOTIFY_URL_MAP
Wed Jul 22 16:12:41 -  4936 - HttpFilterProc: SF_NOTIFY_URL_MAP
Wed Jul 22 16:12:41 -  4936 - HttpFilterProc: SF_NOTIFY_AUTH_COMPLETE
Wed Jul 22 16:12:41 -  4936 - DoRewrites
Wed Jul 22 16:12:41 -  4936 - DoRewrites: Url: '/Pretty.aspx'
Wed Jul 22 16:12:41 -  4936 - EvaluateRules: depth=0
Wed Jul 22 16:12:41 -  4936 - EvaluateRules: Rule 1 : -1 (No match)
Wed Jul 22 16:12:41 -  4936 - EvaluateRules: Rule 2 : 1 matches
Wed Jul 22 16:12:41 -  4936 - ApplyCaseConversion: after  '/Ugly.aspx?id=01234&menuid=842'
Wed Jul 22 16:12:41 -  4936 - EvaluateRules: Result (length 38): /Ugly.aspx?id=01234&menuid=842
Wed Jul 22 16:12:41 -  4936 - EvaluateRules: Last Rule
Wed Jul 22 16:12:41 -  4936 - EvaluateRules: returning 1
Wed Jul 22 16:12:41 -  4936 - DoRewrites: Rewrite Url to: '/Ugly.aspx?id=01234&menuid=842'
Wed Jul 22 16:12:41 -  4936 - HttpFilterProc: SF_NOTIFY_AUTH_COMPLETE
Wed Jul 22 16:12:41 -  4936 - DoRewrites
Wed Jul 22 16:12:41 -  4936 - DoRewrites: Url: '/Ugly.aspx?id=01234&menuid=842'
Wed Jul 22 16:12:41 -  4936 - EvaluateRules: depth=0
Wed Jul 22 16:12:41 -  4936 - EvaluateRules: Rule 1 : 1 matches
Wed Jul 22 16:12:41 -  4936 - ApplyCaseConversion: after  '/Pretty.aspx'
Wed Jul 22 16:12:41 -  4936 - EvaluateRules: Result (length 25): /Pretty.aspx
Wed Jul 22 16:12:41 -  4936 - EvaluateRules: returning 302
Wed Jul 22 16:12:41 -  4936 - DoRewrites: Redirect (code=302) Url to: '/Pretty.aspx'
Wed Jul 22 16:12:41 -  4936 - HttpFilterProc: SF_NOTIFY_LOG
Wed Jul 22 16:12:41 -  4936 - HttpFilterProc: SF_NOTIFY_LOG

Wed Jul 22 16:12:41 -  6040 - HttpFilterProc: SF_NOTIFY_URL_MAP
Wed Jul 22 16:12:41 -  6040 - HttpFilterProc: SF_NOTIFY_URL_MAP
Wed Jul 22 16:12:41 -  6040 - HttpFilterProc: SF_NOTIFY_AUTH_COMPLETE
Wed Jul 22 16:12:41 -  6040 - DoRewrites
Wed Jul 22 16:12:41 -  6040 - DoRewrites: Url: '/Pretty.aspx'
Wed Jul 22 16:12:41 -  6040 - EvaluateRules: depth=0
Wed Jul 22 16:12:41 -  6040 - EvaluateRules: Rule 1 : -1 (No match)
Wed Jul 22 16:12:41 -  6040 - EvaluateRules: Rule 2 : 1 matches
Wed Jul 22 16:12:41 -  6040 - ApplyCaseConversion: after  '/Ugly.aspx?id=01234&menuid=842'
Wed Jul 22 16:12:41 -  6040 - EvaluateRules: Result (length 38): /Ugly.aspx?id=01234&menuid=842
Wed Jul 22 16:12:41 -  6040 - EvaluateRules: Last Rule
Wed Jul 22 16:12:41 -  6040 - EvaluateRules: returning 1
Wed Jul 22 16:12:41 -  6040 - DoRewrites: Rewrite Url to: '/Ugly.aspx?id=01234&menuid=842'
Wed Jul 22 16:12:41 -  6040 - HttpFilterProc: SF_NOTIFY_AUTH_COMPLETE
Wed Jul 22 16:12:41 -  6040 - DoRewrites
Wed Jul 22 16:12:41 -  6040 - DoRewrites: Url: '/Ugly.aspx?id=01234&menuid=842'
Wed Jul 22 16:12:41 -  6040 - EvaluateRules: depth=0
Wed Jul 22 16:12:41 -  6040 - EvaluateRules: Rule 1 : 1 matches
Wed Jul 22 16:12:41 -  6040 - ApplyCaseConversion: after  '/Pretty.aspx'
Wed Jul 22 16:12:41 -  6040 - EvaluateRules: Result (length 25): /Pretty.aspx
Wed Jul 22 16:12:41 -  6040 - EvaluateRules: returning 302
Wed Jul 22 16:12:41 -  6040 - DoRewrites: Redirect (code=302) Url to: '/Pretty.aspx'
Wed Jul 22 16:12:41 -  6040 - HttpFilterProc: SF_NOTIFY_LOG
Wed Jul 22 16:12:41 -  6040 - HttpFilterProc: SF_NOTIFY_LOG

Wed Jul 22 16:12:41 -  4936 - HttpFilterProc: SF_NOTIFY_URL_MAP
Wed Jul 22 16:12:41 -  4936 - HttpFilterProc: SF_NOTIFY_URL_MAP
Wed Jul 22 16:12:41 -  4936 - HttpFilterProc: SF_NOTIFY_AUTH_COMPLETE
Wed Jul 22 16:12:41 -  4936 - DoRewrites
Wed Jul 22 16:12:41 -  4936 - DoRewrites: Url: '/Pretty.aspx'
Wed Jul 22 16:12:41 -  4936 - EvaluateRules: depth=0
Wed Jul 22 16:12:41 -  4936 - EvaluateRules: Rule 1 : -1 (No match)
Wed Jul 22 16:12:41 -  4936 - EvaluateRules: Rule 2 : 1 matches
Wed Jul 22 16:12:41 -  4936 - ApplyCaseConversion: after  '/Ugly.aspx?id=01234&menuid=842'
Wed Jul 22 16:12:41 -  4936 - EvaluateRules: Result (length 38): /Ugly.aspx?id=01234&menuid=842
Wed Jul 22 16:12:41 -  4936 - EvaluateRules: Last Rule
Wed Jul 22 16:12:41 -  4936 - EvaluateRules: returning 1
Wed Jul 22 16:12:41 -  4936 - DoRewrites: Rewrite Url to: '/Ugly.aspx?id=01234&menuid=842'
Wed Jul 22 16:12:41 -  4936 - HttpFilterProc: SF_NOTIFY_AUTH_COMPLETE
Wed Jul 22 16:12:41 -  4936 - DoRewrites
Wed Jul 22 16:12:41 -  4936 - DoRewrites: Url: '/Ugly.aspx?id=01234&menuid=842'
Wed Jul 22 16:12:41 -  4936 - EvaluateRules: depth=0
Wed Jul 22 16:12:41 -  4936 - EvaluateRules: Rule 1 : 1 matches
Wed Jul 22 16:12:41 -  4936 - ApplyCaseConversion: after  '/Pretty.aspx'
Wed Jul 22 16:12:41 -  4936 - EvaluateRules: Result (length 25): /Pretty.aspx
Wed Jul 22 16:12:41 -  4936 - EvaluateRules: returning 302
Wed Jul 22 16:12:41 -  4936 - DoRewrites: Redirect (code=302) Url to: '/Pretty.aspx'
Wed Jul 22 16:12:41 -  4936 - HttpFilterProc: SF_NOTIFY_LOG
Wed Jul 22 16:12:41 -  4936 - HttpFilterProc: SF_NOTIFY_LOG

Wed Jul 22 16:12:41 -  4936 - HttpFilterProc: SF_NOTIFY_URL_MAP
Wed Jul 22 16:12:41 -  4936 - HttpFilterProc: SF_NOTIFY_URL_MAP
Wed Jul 22 16:12:41 -  4936 - HttpFilterProc: SF_NOTIFY_AUTH_COMPLETE
Wed Jul 22 16:12:41 -  4936 - DoRewrites
Wed Jul 22 16:12:41 -  4936 - DoRewrites: Url: '/Pretty.aspx'
Wed Jul 22 16:12:41 -  4936 - EvaluateRules: depth=0
Wed Jul 22 16:12:41 -  4936 - EvaluateRules: Rule 1 : -1 (No match)
Wed Jul 22 16:12:41 -  4936 - EvaluateRules: Rule 2 : 1 matches
Wed Jul 22 16:12:41 -  4936 - ApplyCaseConversion: after  '/Ugly.aspx?id=01234&menuid=842'
Wed Jul 22 16:12:41 -  4936 - EvaluateRules: Result (length 38): /Ugly.aspx?id=01234&menuid=842
Wed Jul 22 16:12:41 -  4936 - EvaluateRules: Last Rule
Wed Jul 22 16:12:41 -  4936 - EvaluateRules: returning 1
Wed Jul 22 16:12:41 -  4936 - DoRewrites: Rewrite Url to: '/Ugly.aspx?id=01234&menuid=842'
Wed Jul 22 16:12:41 -  4936 - HttpFilterProc: SF_NOTIFY_AUTH_COMPLETE
Wed Jul 22 16:12:41 -  4936 - DoRewrites
Wed Jul 22 16:12:41 -  4936 - DoRewrites: Url: '/Ugly.aspx?id=01234&menuid=842'
Wed Jul 22 16:12:41 -  4936 - EvaluateRules: depth=0
Wed Jul 22 16:12:41 -  4936 - EvaluateRules: Rule 1 : 1 matches
Wed Jul 22 16:12:41 -  4936 - ApplyCaseConversion: after  '/Pretty.aspx'
Wed Jul 22 16:12:41 -  4936 - EvaluateRules: Result (length 25): /Pretty.aspx
Wed Jul 22 16:12:41 -  4936 - EvaluateRules: returning 302
Wed Jul 22 16:12:41 -  4936 - DoRewrites: Redirect (code=302) Url to: '/Pretty.aspx'
Wed Jul 22 16:12:41 -  4936 - HttpFilterProc: SF_NOTIFY_LOG
Wed Jul 22 16:12:41 -  4936 - HttpFilterProc: SF_NOTIFY_LOG

Wed Jul 22 16:12:41 -  4936 - HttpFilterProc: SF_NOTIFY_URL_MAP
Wed Jul 22 16:12:41 -  4936 - HttpFilterProc: SF_NOTIFY_URL_MAP
Wed Jul 22 16:12:41 -  4936 - HttpFilterProc: SF_NOTIFY_AUTH_COMPLETE
Wed Jul 22 16:12:41 -  4936 - DoRewrites
Wed Jul 22 16:12:41 -  4936 - DoRewrites: Url: '/Pretty.aspx'
Wed Jul 22 16:12:41 -  4936 - EvaluateRules: depth=0
Wed Jul 22 16:12:41 -  4936 - EvaluateRules: Rule 1 : -1 (No match)
Wed Jul 22 16:12:41 -  4936 - EvaluateRules: Rule 2 : 1 matches
Wed Jul 22 16:12:41 -  4936 - ApplyCaseConversion: after  '/Ugly.aspx?id=01234&menuid=842'
Wed Jul 22 16:12:41 -  4936 - EvaluateRules: Result (length 38): /Ugly.aspx?id=01234&menuid=842
Wed Jul 22 16:12:41 -  4936 - EvaluateRules: Last Rule
Wed Jul 22 16:12:41 -  4936 - EvaluateRules: returning 1
Wed Jul 22 16:12:41 -  4936 - DoRewrites: Rewrite Url to: '/Ugly.aspx?id=01234&menuid=842'
Wed Jul 22 16:12:41 -  4936 - HttpFilterProc: SF_NOTIFY_AUTH_COMPLETE
Wed Jul 22 16:12:41 -  4936 - DoRewrites
Wed Jul 22 16:12:41 -  4936 - DoRewrites: Url: '/Ugly.aspx?id=01234&menuid=842'
Wed Jul 22 16:12:41 -  4936 - EvaluateRules: depth=0
Wed Jul 22 16:12:41 -  4936 - EvaluateRules: Rule 1 : 1 matches
Wed Jul 22 16:12:41 -  4936 - ApplyCaseConversion: after  '/Pretty.aspx'
Wed Jul 22 16:12:41 -  4936 - EvaluateRules: Result (length 25): /Pretty.aspx
Wed Jul 22 16:12:41 -  4936 - EvaluateRules: returning 302
Wed Jul 22 16:12:41 -  4936 - DoRewrites: Redirect (code=302) Url to: '/Pretty.aspx'
Wed Jul 22 16:12:41 -  4936 - HttpFilterProc: SF_NOTIFY_LOG
Wed Jul 22 16:12:41 -  4936 - HttpFilterProc: SF_NOTIFY_LOG

Wed Jul 22 16:12:41 -  5084 - HttpFilterProc: SF_NOTIFY_URL_MAP
Wed Jul 22 16:12:41 -  5084 - HttpFilterProc: SF_NOTIFY_URL_MAP
Wed Jul 22 16:12:41 -  5084 - HttpFilterProc: SF_NOTIFY_AUTH_COMPLETE
Wed Jul 22 16:12:41 -  5084 - DoRewrites
Wed Jul 22 16:12:41 -  5084 - DoRewrites: Url: '/Pretty.aspx'
Wed Jul 22 16:12:41 -  5084 - EvaluateRules: depth=0
Wed Jul 22 16:12:41 -  5084 - EvaluateRules: Rule 1 : -1 (No match)
Wed Jul 22 16:12:41 -  5084 - EvaluateRules: Rule 2 : 1 matches
Wed Jul 22 16:12:41 -  5084 - ApplyCaseConversion: after  '/Ugly.aspx?id=01234&menuid=842'
Wed Jul 22 16:12:41 -  5084 - EvaluateRules: Result (length 38): /Ugly.aspx?id=01234&menuid=842
Wed Jul 22 16:12:41 -  5084 - EvaluateRules: Last Rule
Wed Jul 22 16:12:41 -  5084 - EvaluateRules: returning 1
Wed Jul 22 16:12:41 -  5084 - DoRewrites: Rewrite Url to: '/Ugly.aspx?id=01234&menuid=842'
Wed Jul 22 16:12:41 -  5084 - HttpFilterProc: SF_NOTIFY_AUTH_COMPLETE
Wed Jul 22 16:12:41 -  5084 - DoRewrites
Wed Jul 22 16:12:41 -  5084 - DoRewrites: Url: '/Ugly.aspx?id=01234&menuid=842'
Wed Jul 22 16:12:41 -  5084 - EvaluateRules: depth=0
Wed Jul 22 16:12:41 -  5084 - EvaluateRules: Rule 1 : 1 matches
Wed Jul 22 16:12:41 -  5084 - ApplyCaseConversion: after  '/Pretty.aspx'
Wed Jul 22 16:12:41 -  5084 - EvaluateRules: Result (length 25): /Pretty.aspx
Wed Jul 22 16:12:41 -  5084 - EvaluateRules: returning 302
Wed Jul 22 16:12:41 -  5084 - DoRewrites: Redirect (code=302) Url to: '/Pretty.aspx'
Wed Jul 22 16:12:41 -  5084 - HttpFilterProc: SF_NOTIFY_LOG
Wed Jul 22 16:12:41 -  5084 - HttpFilterProc: SF_NOTIFY_LOG

Wed Jul 22 16:12:41 -   872 - HttpFilterProc: SF_NOTIFY_URL_MAP
Wed Jul 22 16:12:41 -   872 - HttpFilterProc: SF_NOTIFY_URL_MAP
Wed Jul 22 16:12:41 -   872 - HttpFilterProc: SF_NOTIFY_AUTH_COMPLETE
Wed Jul 22 16:12:41 -   872 - DoRewrites
Wed Jul 22 16:12:41 -   872 - DoRewrites: Url: '/Pretty.aspx'
Wed Jul 22 16:12:41 -   872 - EvaluateRules: depth=0
Wed Jul 22 16:12:41 -   872 - EvaluateRules: Rule 1 : -1 (No match)
Wed Jul 22 16:12:41 -   872 - EvaluateRules: Rule 2 : 1 matches
Wed Jul 22 16:12:41 -   872 - ApplyCaseConversion: after  '/Ugly.aspx?id=01234&menuid=842'
Wed Jul 22 16:12:41 -   872 - EvaluateRules: Result (length 38): /Ugly.aspx?id=01234&menuid=842
Wed Jul 22 16:12:41 -   872 - EvaluateRules: Last Rule
Wed Jul 22 16:12:41 -   872 - EvaluateRules: returning 1
Wed Jul 22 16:12:41 -   872 - DoRewrites: Rewrite Url to: '/Ugly.aspx?id=01234&menuid=842'
Wed Jul 22 16:12:41 -   872 - HttpFilterProc: SF_NOTIFY_AUTH_COMPLETE
Wed Jul 22 16:12:41 -   872 - DoRewrites
Wed Jul 22 16:12:41 -   872 - DoRewrites: Url: '/Ugly.aspx?id=01234&menuid=842'
Wed Jul 22 16:12:41 -   872 - EvaluateRules: depth=0
Wed Jul 22 16:12:41 -   872 - EvaluateRules: Rule 1 : 1 matches
Wed Jul 22 16:12:41 -   872 - ApplyCaseConversion: after  '/Pretty.aspx'
Wed Jul 22 16:12:41 -   872 - EvaluateRules: Result (length 25): /Pretty.aspx
Wed Jul 22 16:12:41 -   872 - EvaluateRules: returning 302
Wed Jul 22 16:12:41 -   872 - DoRewrites: Redirect (code=302) Url to: '/Pretty.aspx'
Wed Jul 22 16:12:41 -   872 - HttpFilterProc: SF_NOTIFY_LOG
Wed Jul 22 16:12:41 -   872 - HttpFilterProc: SF_NOTIFY_LOG

Wed Jul 22 16:12:41 -   872 - HttpFilterProc: SF_NOTIFY_URL_MAP
Wed Jul 22 16:12:41 -   872 - HttpFilterProc: SF_NOTIFY_URL_MAP
Wed Jul 22 16:12:41 -   872 - HttpFilterProc: SF_NOTIFY_AUTH_COMPLETE
Wed Jul 22 16:12:41 -   872 - DoRewrites
Wed Jul 22 16:12:41 -   872 - DoRewrites: Url: '/Pretty.aspx'
Wed Jul 22 16:12:41 -   872 - EvaluateRules: depth=0
Wed Jul 22 16:12:41 -   872 - EvaluateRules: Rule 1 : -1 (No match)
Wed Jul 22 16:12:41 -   872 - EvaluateRules: Rule 2 : 1 matches
Wed Jul 22 16:12:41 -   872 - ApplyCaseConversion: after  '/Ugly.aspx?id=01234&menuid=842'
Wed Jul 22 16:12:41 -   872 - EvaluateRules: Result (length 38): /Ugly.aspx?id=01234&menuid=842
Wed Jul 22 16:12:41 -   872 - EvaluateRules: Last Rule
Wed Jul 22 16:12:41 -   872 - EvaluateRules: returning 1
Wed Jul 22 16:12:41 -   872 - DoRewrites: Rewrite Url to: '/Ugly.aspx?id=01234&menuid=842'
Wed Jul 22 16:12:41 -   872 - HttpFilterProc: SF_NOTIFY_AUTH_COMPLETE
Wed Jul 22 16:12:41 -   872 - DoRewrites
Wed Jul 22 16:12:41 -   872 - DoRewrites: Url: '/Ugly.aspx?id=01234&menuid=842'
Wed Jul 22 16:12:41 -   872 - EvaluateRules: depth=0
Wed Jul 22 16:12:41 -   872 - EvaluateRules: Rule 1 : 1 matches
Wed Jul 22 16:12:41 -   872 - ApplyCaseConversion: after  '/Pretty.aspx'
Wed Jul 22 16:12:41 -   872 - EvaluateRules: Result (length 25): /Pretty.aspx
Wed Jul 22 16:12:41 -   872 - EvaluateRules: returning 302
Wed Jul 22 16:12:41 -   872 - DoRewrites: Redirect (code=302) Url to: '/Pretty.aspx'
Wed Jul 22 16:12:41 -   872 - HttpFilterProc: SF_NOTIFY_LOG
Wed Jul 22 16:12:41 -   872 - HttpFilterProc: SF_NOTIFY_LOG

Wed Jul 22 16:12:41 -  4936 - HttpFilterProc: SF_NOTIFY_URL_MAP
Wed Jul 22 16:12:41 -  4936 - HttpFilterProc: SF_NOTIFY_URL_MAP
Wed Jul 22 16:12:41 -  4936 - HttpFilterProc: SF_NOTIFY_AUTH_COMPLETE
Wed Jul 22 16:12:41 -  4936 - DoRewrites
Wed Jul 22 16:12:41 -  4936 - DoRewrites: Url: '/Pretty.aspx'
Wed Jul 22 16:12:41 -  4936 - EvaluateRules: depth=0
Wed Jul 22 16:12:41 -  4936 - EvaluateRules: Rule 1 : -1 (No match)
Wed Jul 22 16:12:41 -  4936 - EvaluateRules: Rule 2 : 1 matches
Wed Jul 22 16:12:41 -  4936 - ApplyCaseConversion: after  '/Ugly.aspx?id=01234&menuid=842'
Wed Jul 22 16:12:41 -  4936 - EvaluateRules: Result (length 38): /Ugly.aspx?id=01234&menuid=842
Wed Jul 22 16:12:41 -  4936 - EvaluateRules: Last Rule
Wed Jul 22 16:12:41 -  4936 - EvaluateRules: returning 1
Wed Jul 22 16:12:41 -  4936 - DoRewrites: Rewrite Url to: '/Ugly.aspx?id=01234&menuid=842'
Wed Jul 22 16:12:41 -  4936 - HttpFilterProc: SF_NOTIFY_AUTH_COMPLETE
Wed Jul 22 16:12:41 -  4936 - DoRewrites
Wed Jul 22 16:12:41 -  4936 - DoRewrites: Url: '/Ugly.aspx?id=01234&menuid=842'
Wed Jul 22 16:12:41 -  4936 - EvaluateRules: depth=0
Wed Jul 22 16:12:41 -  4936 - EvaluateRules: Rule 1 : 1 matches
Wed Jul 22 16:12:41 -  4936 - ApplyCaseConversion: after  '/Pretty.aspx'
Wed Jul 22 16:12:41 -  4936 - EvaluateRules: Result (length 25): /Pretty.aspx
Wed Jul 22 16:12:41 -  4936 - EvaluateRules: returning 302
Wed Jul 22 16:12:41 -  4936 - DoRewrites: Redirect (code=302) Url to: '/Pretty.aspx'
Wed Jul 22 16:12:41 -  4936 - HttpFilterProc: SF_NOTIFY_LOG
Wed Jul 22 16:12:41 -  4936 - HttpFilterProc: SF_NOTIFY_LOG

Wed Jul 22 16:12:41 -  4936 - HttpFilterProc: SF_NOTIFY_URL_MAP
Wed Jul 22 16:12:41 -  4936 - HttpFilterProc: SF_NOTIFY_URL_MAP
Wed Jul 22 16:12:41 -  4936 - HttpFilterProc: SF_NOTIFY_AUTH_COMPLETE
Wed Jul 22 16:12:41 -  4936 - DoRewrites
Wed Jul 22 16:12:41 -  4936 - DoRewrites: Url: '/Pretty.aspx'
Wed Jul 22 16:12:41 -  4936 - EvaluateRules: depth=0
Wed Jul 22 16:12:41 -  4936 - EvaluateRules: Rule 1 : -1 (No match)
Wed Jul 22 16:12:41 -  4936 - EvaluateRules: Rule 2 : 1 matches
Wed Jul 22 16:12:41 -  4936 - ApplyCaseConversion: after  '/Ugly.aspx?id=01234&menuid=842'
Wed Jul 22 16:12:41 -  4936 - EvaluateRules: Result (length 38): /Ugly.aspx?id=01234&menuid=842
Wed Jul 22 16:12:41 -  4936 - EvaluateRules: Last Rule
Wed Jul 22 16:12:41 -  4936 - EvaluateRules: returning 1
Wed Jul 22 16:12:41 -  4936 - DoRewrites: Rewrite Url to: '/Ugly.aspx?id=01234&menuid=842'
Wed Jul 22 16:12:41 -  4936 - HttpFilterProc: SF_NOTIFY_AUTH_COMPLETE
Wed Jul 22 16:12:41 -  4936 - DoRewrites
Wed Jul 22 16:12:41 -  4936 - DoRewrites: Url: '/Ugly.aspx?id=01234&menuid=842'
Wed Jul 22 16:12:41 -  4936 - EvaluateRules: depth=0
Wed Jul 22 16:12:41 -  4936 - EvaluateRules: Rule 1 : 1 matches
Wed Jul 22 16:12:41 -  4936 - ApplyCaseConversion: after  '/Pretty.aspx'
Wed Jul 22 16:12:41 -  4936 - EvaluateRules: Result (length 25): /Pretty.aspx
Wed Jul 22 16:12:41 -  4936 - EvaluateRules: returning 302
Wed Jul 22 16:12:41 -  4936 - DoRewrites: Redirect (code=302) Url to: '/Pretty.aspx'
Wed Jul 22 16:12:41 -  4936 - HttpFilterProc: SF_NOTIFY_LOG
Wed Jul 22 16:12:41 -  4936 - HttpFilterProc: SF_NOTIFY_LOG

Wed Jul 22 16:12:41 -  5084 - HttpFilterProc: SF_NOTIFY_URL_MAP
Wed Jul 22 16:12:41 -  5084 - HttpFilterProc: SF_NOTIFY_URL_MAP
Wed Jul 22 16:12:41 -  5084 - HttpFilterProc: SF_NOTIFY_AUTH_COMPLETE
Wed Jul 22 16:12:41 -  5084 - DoRewrites
Wed Jul 22 16:12:41 -  5084 - DoRewrites: Url: '/Pretty.aspx'
Wed Jul 22 16:12:41 -  5084 - EvaluateRules: depth=0
Wed Jul 22 16:12:41 -  5084 - EvaluateRules: Rule 1 : -1 (No match)
Wed Jul 22 16:12:41 -  5084 - EvaluateRules: Rule 2 : 1 matches
Wed Jul 22 16:12:41 -  5084 - ApplyCaseConversion: after  '/Ugly.aspx?id=01234&menuid=842'
Wed Jul 22 16:12:41 -  5084 - EvaluateRules: Result (length 38): /Ugly.aspx?id=01234&menuid=842
Wed Jul 22 16:12:41 -  5084 - EvaluateRules: Last Rule
Wed Jul 22 16:12:41 -  5084 - EvaluateRules: returning 1
Wed Jul 22 16:12:41 -  5084 - DoRewrites: Rewrite Url to: '/Ugly.aspx?id=01234&menuid=842'
Wed Jul 22 16:12:41 -  5084 - HttpFilterProc: SF_NOTIFY_AUTH_COMPLETE
Wed Jul 22 16:12:41 -  5084 - DoRewrites
Wed Jul 22 16:12:41 -  5084 - DoRewrites: Url: '/Ugly.aspx?id=01234&menuid=842'
Wed Jul 22 16:12:41 -  5084 - EvaluateRules: depth=0
Wed Jul 22 16:12:41 -  5084 - EvaluateRules: Rule 1 : 1 matches
Wed Jul 22 16:12:41 -  5084 - ApplyCaseConversion: after  '/Pretty.aspx'
Wed Jul 22 16:12:41 -  5084 - EvaluateRules: Result (length 25): /Pretty.aspx
Wed Jul 22 16:12:41 -  5084 - EvaluateRules: returning 302
Wed Jul 22 16:12:41 -  5084 - DoRewrites: Redirect (code=302) Url to: '/Pretty.aspx'
Wed Jul 22 16:12:41 -  5084 - HttpFilterProc: SF_NOTIFY_LOG
Wed Jul 22 16:12:41 -  5084 - HttpFilterProc: SF_NOTIFY_LOG

Wed Jul 22 16:12:41 -  6040 - HttpFilterProc: SF_NOTIFY_URL_MAP
Wed Jul 22 16:12:41 -  6040 - HttpFilterProc: SF_NOTIFY_URL_MAP
Wed Jul 22 16:12:41 -  6040 - HttpFilterProc: SF_NOTIFY_AUTH_COMPLETE
Wed Jul 22 16:12:41 -  6040 - DoRewrites
Wed Jul 22 16:12:41 -  6040 - DoRewrites: Url: '/Pretty.aspx'
Wed Jul 22 16:12:41 -  6040 - EvaluateRules: depth=0
Wed Jul 22 16:12:41 -  6040 - EvaluateRules: Rule 1 : -1 (No match)
Wed Jul 22 16:12:41 -  6040 - EvaluateRules: Rule 2 : 1 matches
Wed Jul 22 16:12:41 -  6040 - ApplyCaseConversion: after  '/Ugly.aspx?id=01234&menuid=842'
Wed Jul 22 16:12:41 -  6040 - EvaluateRules: Result (length 38): /Ugly.aspx?id=01234&menuid=842
Wed Jul 22 16:12:41 -  6040 - EvaluateRules: Last Rule
Wed Jul 22 16:12:41 -  6040 - EvaluateRules: returning 1
Wed Jul 22 16:12:41 -  6040 - DoRewrites: Rewrite Url to: '/Ugly.aspx?id=01234&menuid=842'
Wed Jul 22 16:12:41 -  6040 - HttpFilterProc: SF_NOTIFY_AUTH_COMPLETE
Wed Jul 22 16:12:41 -  6040 - DoRewrites
Wed Jul 22 16:12:41 -  6040 - DoRewrites: Url: '/Ugly.aspx?id=01234&menuid=842'
Wed Jul 22 16:12:41 -  6040 - EvaluateRules: depth=0
Wed Jul 22 16:12:41 -  6040 - EvaluateRules: Rule 1 : 1 matches
Wed Jul 22 16:12:41 -  6040 - ApplyCaseConversion: after  '/Pretty.aspx'
Wed Jul 22 16:12:41 -  6040 - EvaluateRules: Result (length 25): /Pretty.aspx
Wed Jul 22 16:12:41 -  6040 - EvaluateRules: returning 302
Wed Jul 22 16:12:41 -  6040 - DoRewrites: Redirect (code=302) Url to: '/Pretty.aspx'
Wed Jul 22 16:12:41 -  6040 - HttpFilterProc: SF_NOTIFY_LOG
Wed Jul 22 16:12:41 -  6040 - HttpFilterProc: SF_NOTIFY_LOG

Wed Jul 22 16:12:41 -  6040 - HttpFilterProc: SF_NOTIFY_URL_MAP
Wed Jul 22 16:12:41 -  6040 - HttpFilterProc: SF_NOTIFY_URL_MAP
Wed Jul 22 16:12:41 -  6040 - HttpFilterProc: SF_NOTIFY_AUTH_COMPLETE
Wed Jul 22 16:12:41 -  6040 - DoRewrites
Wed Jul 22 16:12:41 -  6040 - DoRewrites: Url: '/Pretty.aspx'
Wed Jul 22 16:12:41 -  6040 - EvaluateRules: depth=0
Wed Jul 22 16:12:41 -  6040 - EvaluateRules: Rule 1 : -1 (No match)
Wed Jul 22 16:12:41 -  6040 - EvaluateRules: Rule 2 : 1 matches
Wed Jul 22 16:12:41 -  6040 - ApplyCaseConversion: after  '/Ugly.aspx?id=01234&menuid=842'
Wed Jul 22 16:12:41 -  6040 - EvaluateRules: Result (length 38): /Ugly.aspx?id=01234&menuid=842
Wed Jul 22 16:12:41 -  6040 - EvaluateRules: Last Rule
Wed Jul 22 16:12:41 -  6040 - EvaluateRules: returning 1
Wed Jul 22 16:12:41 -  6040 - DoRewrites: Rewrite Url to: '/Ugly.aspx?id=01234&menuid=842'
Wed Jul 22 16:12:41 -  6040 - HttpFilterProc: SF_NOTIFY_AUTH_COMPLETE
Wed Jul 22 16:12:41 -  6040 - DoRewrites
Wed Jul 22 16:12:41 -  6040 - DoRewrites: Url: '/Ugly.aspx?id=01234&menuid=842'
Wed Jul 22 16:12:41 -  6040 - EvaluateRules: depth=0
Wed Jul 22 16:12:41 -  6040 - EvaluateRules: Rule 1 : 1 matches
Wed Jul 22 16:12:41 -  6040 - ApplyCaseConversion: after  '/Pretty.aspx'
Wed Jul 22 16:12:41 -  6040 - EvaluateRules: Result (length 25): /Pretty.aspx
Wed Jul 22 16:12:41 -  6040 - EvaluateRules: returning 302
Wed Jul 22 16:12:41 -  6040 - DoRewrites: Redirect (code=302) Url to: '/Pretty.aspx'
Wed Jul 22 16:12:41 -  6040 - HttpFilterProc: SF_NOTIFY_LOG
Wed Jul 22 16:12:41 -  6040 - HttpFilterProc: SF_NOTIFY_LOG

Wed Jul 22 16:12:41 -   872 - HttpFilterProc: SF_NOTIFY_URL_MAP
Wed Jul 22 16:12:41 -   872 - HttpFilterProc: SF_NOTIFY_URL_MAP
Wed Jul 22 16:12:41 -   872 - HttpFilterProc: SF_NOTIFY_AUTH_COMPLETE
Wed Jul 22 16:12:41 -   872 - DoRewrites
Wed Jul 22 16:12:41 -   872 - DoRewrites: Url: '/Pretty.aspx'
Wed Jul 22 16:12:41 -   872 - EvaluateRules: depth=0
Wed Jul 22 16:12:41 -   872 - EvaluateRules: Rule 1 : -1 (No match)
Wed Jul 22 16:12:41 -   872 - EvaluateRules: Rule 2 : 1 matches
Wed Jul 22 16:12:41 -   872 - ApplyCaseConversion: after  '/Ugly.aspx?id=01234&menuid=842'
Wed Jul 22 16:12:41 -   872 - EvaluateRules: Result (length 38): /Ugly.aspx?id=01234&menuid=842
Wed Jul 22 16:12:41 -   872 - EvaluateRules: Last Rule
Wed Jul 22 16:12:41 -   872 - EvaluateRules: returning 1
Wed Jul 22 16:12:41 -   872 - DoRewrites: Rewrite Url to: '/Ugly.aspx?id=01234&menuid=842'
Wed Jul 22 16:12:41 -   872 - HttpFilterProc: SF_NOTIFY_AUTH_COMPLETE
Wed Jul 22 16:12:41 -   872 - DoRewrites
Wed Jul 22 16:12:41 -   872 - DoRewrites: Url: '/Ugly.aspx?id=01234&menuid=842'
Wed Jul 22 16:12:41 -   872 - EvaluateRules: depth=0
Wed Jul 22 16:12:41 -   872 - EvaluateRules: Rule 1 : 1 matches
Wed Jul 22 16:12:41 -   872 - ApplyCaseConversion: after  '/Pretty.aspx'
Wed Jul 22 16:12:41 -   872 - EvaluateRules: Result (length 25): /Pretty.aspx
Wed Jul 22 16:12:41 -   872 - EvaluateRules: returning 302
Wed Jul 22 16:12:41 -   872 - DoRewrites: Redirect (code=302) Url to: '/Pretty.aspx'
Wed Jul 22 16:12:41 -   872 - HttpFilterProc: SF_NOTIFY_LOG
Wed Jul 22 16:12:41 -   872 - HttpFilterProc: SF_NOTIFY_LOG

Wed Jul 22 16:12:41 -   872 - HttpFilterProc: SF_NOTIFY_URL_MAP
Wed Jul 22 16:12:41 -   872 - HttpFilterProc: SF_NOTIFY_URL_MAP
Wed Jul 22 16:12:41 -   872 - HttpFilterProc: SF_NOTIFY_AUTH_COMPLETE
Wed Jul 22 16:12:41 -   872 - DoRewrites
Wed Jul 22 16:12:41 -   872 - DoRewrites: Url: '/Pretty.aspx'
Wed Jul 22 16:12:41 -   872 - EvaluateRules: depth=0
Wed Jul 22 16:12:41 -   872 - EvaluateRules: Rule 1 : -1 (No match)
Wed Jul 22 16:12:41 -   872 - EvaluateRules: Rule 2 : 1 matches
Wed Jul 22 16:12:41 -   872 - ApplyCaseConversion: after  '/Ugly.aspx?id=01234&menuid=842'
Wed Jul 22 16:12:41 -   872 - EvaluateRules: Result (length 38): /Ugly.aspx?id=01234&menuid=842
Wed Jul 22 16:12:41 -   872 - EvaluateRules: Last Rule
Wed Jul 22 16:12:41 -   872 - EvaluateRules: returning 1
Wed Jul 22 16:12:41 -   872 - DoRewrites: Rewrite Url to: '/Ugly.aspx?id=01234&menuid=842'
Wed Jul 22 16:12:41 -   872 - HttpFilterProc: SF_NOTIFY_AUTH_COMPLETE
Wed Jul 22 16:12:41 -   872 - DoRewrites
Wed Jul 22 16:12:41 -   872 - DoRewrites: Url: '/Ugly.aspx?id=01234&menuid=842'
Wed Jul 22 16:12:41 -   872 - EvaluateRules: depth=0
Wed Jul 22 16:12:41 -   872 - EvaluateRules: Rule 1 : 1 matches
Wed Jul 22 16:12:41 -   872 - ApplyCaseConversion: after  '/Pretty.aspx'
Wed Jul 22 16:12:41 -   872 - EvaluateRules: Result (length 25): /Pretty.aspx
Wed Jul 22 16:12:41 -   872 - EvaluateRules: returning 302
Wed Jul 22 16:12:41 -   872 - DoRewrites: Redirect (code=302) Url to: '/Pretty.aspx'
Wed Jul 22 16:12:41 -   872 - HttpFilterProc: SF_NOTIFY_LOG
Wed Jul 22 16:12:41 -   872 - HttpFilterProc: SF_NOTIFY_LOG

Wed Jul 22 16:12:41 -  4936 - HttpFilterProc: SF_NOTIFY_URL_MAP
Wed Jul 22 16:12:41 -  4936 - HttpFilterProc: SF_NOTIFY_URL_MAP
Wed Jul 22 16:12:41 -  4936 - HttpFilterProc: SF_NOTIFY_AUTH_COMPLETE
Wed Jul 22 16:12:41 -  4936 - DoRewrites
Wed Jul 22 16:12:41 -  4936 - DoRewrites: Url: '/Pretty.aspx'
Wed Jul 22 16:12:41 -  4936 - EvaluateRules: depth=0
Wed Jul 22 16:12:41 -  4936 - EvaluateRules: Rule 1 : -1 (No match)
Wed Jul 22 16:12:41 -  4936 - EvaluateRules: Rule 2 : 1 matches
Wed Jul 22 16:12:41 -  4936 - ApplyCaseConversion: after  '/Ugly.aspx?id=01234&menuid=842'
Wed Jul 22 16:12:41 -  4936 - EvaluateRules: Result (length 38): /Ugly.aspx?id=01234&menuid=842
Wed Jul 22 16:12:41 -  4936 - EvaluateRules: Last Rule
Wed Jul 22 16:12:41 -  4936 - EvaluateRules: returning 1
Wed Jul 22 16:12:41 -  4936 - DoRewrites: Rewrite Url to: '/Ugly.aspx?id=01234&menuid=842'
Wed Jul 22 16:12:41 -  4936 - HttpFilterProc: SF_NOTIFY_AUTH_COMPLETE
Wed Jul 22 16:12:41 -  4936 - DoRewrites
Wed Jul 22 16:12:41 -  4936 - DoRewrites: Url: '/Ugly.aspx?id=01234&menuid=842'
Wed Jul 22 16:12:41 -  4936 - EvaluateRules: depth=0
Wed Jul 22 16:12:41 -  4936 - EvaluateRules: Rule 1 : 1 matches
Wed Jul 22 16:12:41 -  4936 - ApplyCaseConversion: after  '/Pretty.aspx'
Wed Jul 22 16:12:41 -  4936 - EvaluateRules: Result (length 25): /Pretty.aspx
Wed Jul 22 16:12:41 -  4936 - EvaluateRules: returning 302
Wed Jul 22 16:12:41 -  4936 - DoRewrites: Redirect (code=302) Url to: '/Pretty.aspx'
Wed Jul 22 16:12:41 -  4936 - HttpFilterProc: SF_NOTIFY_LOG
Wed Jul 22 16:12:41 -  4936 - HttpFilterProc: SF_NOTIFY_LOG

Wed Jul 22 16:12:41 -  4936 - HttpFilterProc: SF_NOTIFY_URL_MAP
Wed Jul 22 16:12:41 -  4936 - HttpFilterProc: SF_NOTIFY_URL_MAP
Wed Jul 22 16:12:41 -  4936 - HttpFilterProc: SF_NOTIFY_AUTH_COMPLETE
Wed Jul 22 16:12:41 -  4936 - DoRewrites
Wed Jul 22 16:12:41 -  4936 - DoRewrites: Url: '/Pretty.aspx'
Wed Jul 22 16:12:41 -  4936 - EvaluateRules: depth=0
Wed Jul 22 16:12:41 -  4936 - EvaluateRules: Rule 1 : -1 (No match)
Wed Jul 22 16:12:41 -  4936 - EvaluateRules: Rule 2 : 1 matches
Wed Jul 22 16:12:41 -  4936 - ApplyCaseConversion: after  '/Ugly.aspx?id=01234&menuid=842'
Wed Jul 22 16:12:41 -  4936 - EvaluateRules: Result (length 38): /Ugly.aspx?id=01234&menuid=842
Wed Jul 22 16:12:41 -  4936 - EvaluateRules: Last Rule
Wed Jul 22 16:12:41 -  4936 - EvaluateRules: returning 1
Wed Jul 22 16:12:41 -  4936 - DoRewrites: Rewrite Url to: '/Ugly.aspx?id=01234&menuid=842'
Wed Jul 22 16:12:41 -  4936 - HttpFilterProc: SF_NOTIFY_AUTH_COMPLETE
Wed Jul 22 16:12:41 -  4936 - DoRewrites
Wed Jul 22 16:12:41 -  4936 - DoRewrites: Url: '/Ugly.aspx?id=01234&menuid=842'
Wed Jul 22 16:12:41 -  4936 - EvaluateRules: depth=0
Wed Jul 22 16:12:41 -  4936 - EvaluateRules: Rule 1 : 1 matches
Wed Jul 22 16:12:41 -  4936 - ApplyCaseConversion: after  '/Pretty.aspx'
Wed Jul 22 16:12:41 -  4936 - EvaluateRules: Result (length 25): /Pretty.aspx
Wed Jul 22 16:12:41 -  4936 - EvaluateRules: returning 302
Wed Jul 22 16:12:41 -  4936 - DoRewrites: Redirect (code=302) Url to: '/Pretty.aspx'
Wed Jul 22 16:12:41 -  4936 - HttpFilterProc: SF_NOTIFY_LOG
Wed Jul 22 16:12:41 -  4936 - HttpFilterProc: SF_NOTIFY_LOG

Wed Jul 22 16:12:41 -  5084 - HttpFilterProc: SF_NOTIFY_URL_MAP
Wed Jul 22 16:12:41 -  5084 - HttpFilterProc: SF_NOTIFY_URL_MAP
Wed Jul 22 16:12:41 -  5084 - HttpFilterProc: SF_NOTIFY_AUTH_COMPLETE
Wed Jul 22 16:12:41 -  5084 - DoRewrites
Wed Jul 22 16:12:41 -  5084 - DoRewrites: Url: '/Pretty.aspx'
Wed Jul 22 16:12:41 -  5084 - EvaluateRules: depth=0
Wed Jul 22 16:12:41 -  5084 - EvaluateRules: Rule 1 : -1 (No match)
Wed Jul 22 16:12:41 -  5084 - EvaluateRules: Rule 2 : 1 matches
Wed Jul 22 16:12:41 -  5084 - ApplyCaseConversion: after  '/Ugly.aspx?id=01234&menuid=842'
Wed Jul 22 16:12:41 -  5084 - EvaluateRules: Result (length 38): /Ugly.aspx?id=01234&menuid=842
Wed Jul 22 16:12:41 -  5084 - EvaluateRules: Last Rule
Wed Jul 22 16:12:41 -  5084 - EvaluateRules: returning 1
Wed Jul 22 16:12:41 -  5084 - DoRewrites: Rewrite Url to: '/Ugly.aspx?id=01234&menuid=842'
Wed Jul 22 16:12:41 -  5084 - HttpFilterProc: SF_NOTIFY_AUTH_COMPLETE
Wed Jul 22 16:12:41 -  5084 - DoRewrites
Wed Jul 22 16:12:41 -  5084 - DoRewrites: Url: '/Ugly.aspx?id=01234&menuid=842'
Wed Jul 22 16:12:41 -  5084 - EvaluateRules: depth=0
Wed Jul 22 16:12:41 -  5084 - EvaluateRules: Rule 1 : 1 matches
Wed Jul 22 16:12:41 -  5084 - ApplyCaseConversion: after  '/Pretty.aspx'
Wed Jul 22 16:12:41 -  5084 - EvaluateRules: Result (length 25): /Pretty.aspx
Wed Jul 22 16:12:41 -  5084 - EvaluateRules: returning 302
Wed Jul 22 16:12:41 -  5084 - DoRewrites: Redirect (code=302) Url to: '/Pretty.aspx'
Wed Jul 22 16:12:41 -  5084 - HttpFilterProc: SF_NOTIFY_LOG
Wed Jul 22 16:12:41 -  5084 - HttpFilterProc: SF_NOTIFY_LOG

 

 

Coordinator
Jul 23, 2009 at 5:49 AM
Edited Jul 23, 2009 at 2:01 PM

What you are trying to do is typical and mainstream.  I took your exact rules and they worked here for me.


Some observations:

you have escaped characters unnecessarily in the rules. = and & do not need a slash. The . and ? do need a slash.

  RedirectRule ^/winisp/info\.aspx\?id=01234&menuid=842.*$  /winisp/Pretty.aspx   [R,I]
  RewriteRule ^/winisp/Pretty.aspx.*$    /winisp/info.aspx?id=01234&menuid=842    [I,L,U]

Your HTTP trace does not match your IIRF log.

Also the IIRF log is not internally consistent.  I think you've done a search/replace on some of the text in the IIRF log, and I'm guessing you also changed the text of the rules, too.  So I may not have the complete picture, especially if you've modified the rules in ways that are inadvertently significant.

As for why you are getting the loop, I don't know but I can imagine some possibilities:

  • your actual rules have a loop that is not apparent from the modified version of the rules you have posted
  • there could be errors in your ini file that cause IIRF to revert to a previous configuration, which includes a looping redirect. (This would be noted by errors logged in the IIRF log file during the ini file parsing stage, not during the URL processing stage). 
  • your Ugly.aspx is doing a HttpResponse.Redirect, a Server.Transfer, or a Server.TransferRequest
  • there is something else in the pipeline manipulating the request
  • IIRF is installed twice, or there is another rewriting filter installed somewhere

Maybe check through some of those possibilities.

If none of that works, I suggest simplifying.  Instead of Pretty.aspx and Ugly.aspx?id=whatever...   I suggest you get this to work with 2 NEW urls.  I know you want it to work on actual URLs, but first try to get it to work with simplified URLs.  Like maybe REALLY use Pretty.aspx and Ugly.aspx (no querystring - keep it simple).  Once you get the simple case working you can expand to the more complicated, real system.

 

Jul 23, 2009 at 2:27 PM

I am aware this is a standard thing to be doing, that's why I'm unclear what is not working.

Could you be more specific about what does not match between the HTTP trace and the IIRF log? Also what is inconsistent about the log other than the lengths of the URLs? The only change I performed on either was changing the words to Pretty and Ugly instead of what they originally were. The original words have only alphabetic characters in them, so I don't expect that would cause a problem. Other than that I did not modify the rules at all.

How would IIRF being installed twice cause this problem, and where would I look to tell if this is occurring? Also, what do you mean by "something else in the pipeline"?

Here is the ini file parsing stage:

Wed Jul 22 16:06:34 -  3412 - LogFile re-opened.
Wed Jul 22 16:06:34 -  3412 - AwaitIniChangeAndReinit: Detected change in the  ini file 'E:\WebSiteProjects\IsapiRewrite\IsapiRewrite4.ini'
Wed Jul 22 16:06:34 -  3412 - AwaitIniChangeAndReinit: Ionic ISAPI Rewriting Filter (IIRF) v1.2.16 R5
Wed Jul 22 16:06:34 -  3412 - ReadConfig
Wed Jul 22 16:06:34 -  3412 - LogFile re-opened.
Wed Jul 22 16:06:34 -  3412 - ReadConfig: new log file name: 'C:\Temp\iirfLog.out.1520.log'
Wed Jul 22 16:06:34 -  3412 - ReadConfig: line 8: RewriteLogLevel 3
Wed Jul 22 16:06:34 -  3412 - ReadConfig: setting LogLevel to 3
Wed Jul 22 16:06:34 -  3412 - ReadConfig: line 15: IterationLimit 2
Wed Jul 22 16:06:34 -  3412 - ReadConfig: line  16: RedirectRule (rule 1)  '^/Ugly\.aspx\?id\=01234\&menuid\=842.*$'  '/Pretty.aspx'  [R,I,U]
Wed Jul 22 16:06:34 -  3412 - ReadConfig: WARNING: Redirecting to a target that does not include an http(s):// scheme.
Wed Jul 22 16:06:34 -  3412 - ReadConfig: line  17: RewriteRule (rule 2)  '^/Pretty.aspx.*$'  '/Ugly.aspx?id=01234&menuid=842'  [I,L,U]
Wed Jul 22 16:06:34 -  3412 - ReadConfig: Done reading, found 2 rules (0 errors, 1 warnings) on 25 lines

Coordinator
Jul 23, 2009 at 4:17 PM

This is what does not match: the IIRF log says it returns a 302 Redirect only for incoming requests that match Ugly.aspx....  Your HTTP trace shows you are sending a GET request for Pretty.aspx, and getting a 302 response to that.  If IIRF were returning that 302, you would see in the IIRF log, a 302 response in reply to a request for Pretty.aspx.    I don't see that.

It is possible to install any ISAPI on a web SITE, or on the web SERVER.  See the IIRF doc for more info on that.  To see where IIRF is installed, use the IIS Manager.   It is conceivable to have IIRF installed in both places.  That's not a good thing to do, I recommend against it, and I don't test it that way.  Not sure what would happen if you had done that.  It might or could lead to weird results.

"Something else in the pipeline" means another filter or handler than handles the HTTP request. Think of it this way:  IIS innitially receives the request and  normally sends a request for a .aspx URL to ASP.NET.  But with an ISAPI Filter - such as IIRF - installed, the ISAPI can interject its own handling between IIS and ASPNET.  The chain from IIS to IIRF to ASPNET can be imagined as a pipeline - the request flows through each section of that pipeline.  Now, it's possible that another filter could be installed, maybe an authentication filter or some other logic.  It would then extend the pipeline to IIS->FilterX->IIRF->ASPNET (or IIS->IIRF->FilterX->ASPNET).  Also, it's possible to deploy an HTTP Module (.ashx) in ASP.NET that does redirection.  It's possible for an ASPNET page to call Server.Transfer or HttpResponse.Redirect, which will return a 302.  Any of these other things in the pipeline may return a 302, and in that case the response will be received by your browser, but won't be logged by IIRF, matching the situation you have.

Have you considered simplifying as I suggested earlier?   Try your redirect+rewrite on simple HTML pages. Also examine the list of ISAPI Filters and extensions inatalled.

 

Jul 23, 2009 at 4:26 PM

I removed and reinstalled IIRF, following the directions in Readme-1.2 under "To configure IIRF on IIS7" to the letter, no change in behavior.

Additionally, I just attempted to get this working with two new, short URLs with no querystrings on either using (1) and still got a Redirect Loop.

The page code consists solely of the Page_Load method with a Databind inside, so it is not being caused by something called by the page. Here is the exact code used:

IterationLimit 2
RedirectRule ^/staff\.aspx$ /Flag.aspx [R,I]
RewriteRule ^/Flag\.aspx$ /staff.aspx [I,L,U]

Here is the .ini parsing section of the log:
Thu Jul 23 11:08:59 -  4684 - LogFile re-opened.
Thu Jul 23 11:08:59 -  4684 - AwaitIniChangeAndReinit: Detected change in the  ini file 'E:\WebSiteProjects\IsapiRewrite\IsapiRewrite4.ini'
Thu Jul 23 11:08:59 -  4684 - AwaitIniChangeAndReinit: Ionic ISAPI Rewriting Filter (IIRF) v1.2.16 R5
Thu Jul 23 11:08:59 -  4684 - ReadConfig
Thu Jul 23 11:08:59 -  4684 - LogFile re-opened.
Thu Jul 23 11:08:59 -  4684 - ReadConfig: new log file name: 'C:\Temp\iirfLog.out.5412.log'
Thu Jul 23 11:08:59 -  4684 - ReadConfig: line 8: RewriteLogLevel 3
Thu Jul 23 11:08:59 -  4684 - ReadConfig: setting LogLevel to 3
Thu Jul 23 11:08:59 -  4684 - ReadConfig: line 15: IterationLimit 2
Thu Jul 23 11:08:59 -  4684 - ReadConfig: line  16: RedirectRule (rule 1)  '^/staff\.aspx$'  '/Flag.aspx'    [R,I]
Thu Jul 23 11:08:59 -  4684 - ReadConfig: WARNING: Redirecting to a target that does not include an http(s):// scheme.
Thu Jul 23 11:08:59 -  4684 - ReadConfig: line  17: RewriteRule (rule 2)  '^/Flag\.aspx$'  '/staff.aspx'  [I,L,U]
Thu Jul 23 11:08:59 -  4684 - ReadConfig: Done reading, found 2 rules (0 errors, 1 warnings) on 27 lines

And here is the IIRF Level 3 Log when Staff is entered, no replacements this time:

Thu Jul 23 11:12:22 -  4844 - HttpFilterProc: SF_NOTIFY_URL_MAP
Thu Jul 23 11:12:22 -  4844 - HttpFilterProc: SF_NOTIFY_URL_MAP
Thu Jul 23 11:12:22 -  4844 - HttpFilterProc: SF_NOTIFY_AUTH_COMPLETE
Thu Jul 23 11:12:22 -  4844 - DoRewrites
Thu Jul 23 11:12:22 -  4844 - DoRewrites: Url: '/Staff.aspx'
Thu Jul 23 11:12:22 -  4844 - EvaluateRules: depth=0
Thu Jul 23 11:12:22 -  4844 - EvaluateRules: Rule 1 : 1 matches
Thu Jul 23 11:12:22 -  4844 - ApplyCaseConversion: after  '/Flag.aspx'
Thu Jul 23 11:12:22 -  4844 - EvaluateRules: Result (length 10): /Flag.aspx
Thu Jul 23 11:12:22 -  4844 - EvaluateRules: returning 302
Thu Jul 23 11:12:22 -  4844 - DoRewrites: Redirect (code=302) Url to: '/Flag.aspx'
Thu Jul 23 11:12:22 -  4844 - HttpFilterProc: SF_NOTIFY_LOG
Thu Jul 23 11:12:22 -  4844 - HttpFilterProc: SF_NOTIFY_LOG

Thu Jul 23 11:12:22 -  5800 - HttpFilterProc: SF_NOTIFY_URL_MAP
Thu Jul 23 11:12:22 -  5800 - HttpFilterProc: SF_NOTIFY_URL_MAP
Thu Jul 23 11:12:22 -  5800 - HttpFilterProc: SF_NOTIFY_AUTH_COMPLETE
Thu Jul 23 11:12:22 -  5800 - DoRewrites
Thu Jul 23 11:12:22 -  5800 - DoRewrites: Url: '/Flag.aspx'
Thu Jul 23 11:12:22 -  5800 - EvaluateRules: depth=0
Thu Jul 23 11:12:22 -  5800 - EvaluateRules: Rule 1 : -1 (No match)
Thu Jul 23 11:12:22 -  5800 - EvaluateRules: Rule 2 : 1 matches
Thu Jul 23 11:12:22 -  5800 - ApplyCaseConversion: after  '/staff.aspx'
Thu Jul 23 11:12:22 -  5800 - EvaluateRules: Result (length 11): /staff.aspx
Thu Jul 23 11:12:22 -  5800 - EvaluateRules: Last Rule
Thu Jul 23 11:12:22 -  5800 - EvaluateRules: returning 1
Thu Jul 23 11:12:22 -  5800 - DoRewrites: Rewrite Url to: '/staff.aspx'
Thu Jul 23 11:12:22 -  5800 - HttpFilterProc: SF_NOTIFY_AUTH_COMPLETE
Thu Jul 23 11:12:22 -  5800 - DoRewrites
Thu Jul 23 11:12:22 -  5800 - DoRewrites: Url: '/staff.aspx'
Thu Jul 23 11:12:22 -  5800 - EvaluateRules: depth=0
Thu Jul 23 11:12:22 -  5800 - EvaluateRules: Rule 1 : 1 matches
Thu Jul 23 11:12:22 -  5800 - ApplyCaseConversion: after  '/Flag.aspx'
Thu Jul 23 11:12:22 -  5800 - EvaluateRules: Result (length 10): /Flag.aspx
Thu Jul 23 11:12:22 -  5800 - EvaluateRules: returning 302
Thu Jul 23 11:12:22 -  5800 - DoRewrites: Redirect (code=302) Url to: '/Flag.aspx'
Thu Jul 23 11:12:22 -  5800 - HttpFilterProc: SF_NOTIFY_LOG
Thu Jul 23 11:12:22 -  5800 - HttpFilterProc: SF_NOTIFY_LOG

And then the second group repeats until the error occurs.

Jul 23, 2009 at 4:38 PM

Also here is the HTTP for a request of Staff. Again the second one repeats until error.

http://localhost/Staff.aspx

GET /Staff.aspx HTTP/1.1
Host: thisdesktop
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US; rv:1.9.0.12) Gecko/2009070611 Firefox/3.0.12
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Cookie: ecm=user_id=0&isMembershipUser=0&site_id=&username=&new_site=/mnet/&unique_id=0&site_preview=0&langvalue=0&DefaultLanguage=1033&NavLanguage=1033&LastValidLanguageID=1033&ContType=&UserCulture=1033&SiteLanguage=1033; ASP.NET_SessionId=3hsnxqjrvguxb5zmz34z1wm5; EktGUID=2a742ec6-6ba8-47cc-807f-65c718cdf6c8; _csuid=4a2e5f1c182171ef

HTTP/1.x 302
Date: Thu, 23 Jul 2009 15:34:48 GMT
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
Location: http://localhost/Flag.aspx
Connection: close
Content-Length: 0
----------------------------------------------------------
http://localhost/Flag.aspx

GET /Flag.aspx HTTP/1.1
Host: thisdesktop
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US; rv:1.9.0.12) Gecko/2009070611 Firefox/3.0.12
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Cookie: ecm=user_id=0&isMembershipUser=0&site_id=&username=&new_site=/mnet/&unique_id=0&site_preview=0&langvalue=0&DefaultLanguage=1033&NavLanguage=1033&LastValidLanguageID=1033&ContType=&UserCulture=1033&SiteLanguage=1033; ASP.NET_SessionId=3hsnxqjrvguxb5zmz34z1wm5; EktGUID=2a742ec6-6ba8-47cc-807f-65c718cdf6c8; _csuid=4a2e5f1c182171ef

HTTP/1.x 302
Date: Thu, 23 Jul 2009 15:34:48 GMT
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
Location: http://localhost/Flag.aspx
Connection: close
Content-Length: 0

Coordinator
Jul 23, 2009 at 5:07 PM

Ok, it's not the page logic that is causing the redirect.

Did you check that IIRF is installed on the SITE, or on the SERVER, but not both?

I noticed that in the IIRF log, there are two messages for URL_MAP and NOTIFY_LOG for each URL request.  This is unusual and unexpected. 

I then tried installing IIRF twice on my own machine - once on the web site, and once on the web server.  It produced the same Log file as you, and it produced a Redirect Loop, just as you reported.

Can you please check this on your machine?

As I told you earlier, use the IIS Manager to check this.

 

Coordinator
Jul 23, 2009 at 5:24 PM

Some screen shots.

This shows the IIS manager, and selecting the ISAPI Filters icon for the WEB SITE

This shows IIS Manager, and IIRF installed on the WEB SERVER

This shows the WEB SITE selected on the left hand side, and IIRF is installed TWICE. Once on the server and once on the website. This leads to problems. Don't do this.

Jul 23, 2009 at 5:27 PM


I checked IIS manager and found "Ionic Rewriter" listed under Websites->Properties->ISAPI Filters that pointed to the IsapiRewrite4.dll.
However, within that folder under Default Web Site->Properties->ISAPI Filters was "WebFilter" that also pointed to the IsapiRewrite4.dll,
which is the one I had removed and reinstalled earlier.

I removed the "Ionic Rewriter" copy and now the Flag/Staff example works. Even better, so does the original problem.

Thank you. Your help is much appreciated.

Coordinator
Jul 23, 2009 at 7:58 PM

great, glad you got it sorted out.