код для удаления /Default.aspx
и //www
не работает (как и ожидалось):
protected void Application_BeginRequest(object sender, EventArgs e)
{
HttpContext context = HttpContext.Current;
string url = context.Request.RawUrl.ToString();
bool doRedirect = false;
// remove > default.aspx
if (url.EndsWith("/default.aspx", StringComparison.OrdinalIgnoreCase))
{
url = url.Substring(0, url.Length - 12);
doRedirect = true;
}
// remove > www
if (url.Contains("//www"))
{
url = url.Replace("//www", "//");
doRedirect = true;
}
// redirect if necessary
if (doRedirect)
{
context.Response.Redirect(url);
}
}
обычно это работает, но при отправке формы (например, войдите в систему) приведенный выше код перехватывает запрос, а затем выполняет перенаправление на ту же страницу. пример:
- попробуйте прийти на страницу:
~/SignIn/Default.aspx
- запросы перехватываются и фиксируются на:
~/SignIn/
- заполните форму, нажмите "Войти"
- текущий URL-адрес страницы изменяется с:
~/SignIn/
до ~/SignIn/Default.aspx
и снова исправляется, что отменяет обработку метода SignIn
(который перенаправил бы браузер на /SignIn/Success/
), и страница перезагружалась ~/SignIn/
и вход не выполнен.
пожалуйста, помогите. не уверен что / как тут исправить.
Основное требование здесь:
удалить /Default.aspx
и //www
из URL
Thnx