I using iis url rewriting, I added this rule
<rule name="rewrite to details pages" stopProcessing="true">
<match url="^details/([0-9]+)" />
<action type="Rewrite" url="pages/details.aspx?id={R:1}" />
</rule>
to rewrite this url :
/pages/details.aspx?id=12
to
/details/12
so, after requesting new url : /details/12, and try to get query string using this code :
protected void Page_Load(object sender, EventArgs e)
{
try
{
long itemid;
if (long.TryParse(Request.QueryString["id"], out itemid))
{
// value is null
}
else
{
Response.Redirect("default.aspx");
}
}
catch
{
Response.Redirect("default.aspx");
}
}
i cant get any value
and i also tried :
protected void Page_Load(object sender, EventArgs e)
{
try
{
//var rawURl = Request.RawUrl;
//Uri currentUrl = new Uri(Request.Url.GetLeftPart(UriPartial.Authority) + Request.ServerVariables["SCRIPT_NAME"] + "?" + Request.ServerVariables["QUERY_STRING"]);
Uri theRealURL = new Uri(HttpContext.Current.Request.Url.Scheme + "://" + HttpContext.Current.Request.Url.Authority + HttpContext.Current.Request.RawUrl);
string yourValue = HttpUtility.ParseQueryString(theRealURL.Query).Get("id");
long itemid;
if (yourValue , out itemid))
{
// no query strings
}
else
{
Response.Redirect("default.aspx");
}
}
catch
{
Response.Redirect("default.aspx");
}
}
but theRealURL comes without any query strings !! Debugging result:
so how can i get query string after rewrite url ?