Строка запроса как часть URL - PullRequest
       10

Строка запроса как часть URL

0 голосов
/ 01 февраля 2012

У меня есть URL со строкой запроса http://www.sample.com? Q = asdasdsdasd . Можно ли будет изменить строку запроса, чтобы я мог заменить ее на / myaccount, т.е. в конце URL будет выглядеть как http://www.sample.com/myaccount.

Ответы [ 5 ]

2 голосов
/ 01 февраля 2012
string destUrl = string.Format("{0}://{1}{2}/",Request.Url.Scheme,Request.Url.Authority,Request.Url.AbsolutePath);
if (destUrl.EndsWith("/"))
    destUrl = destUrl.TrimEnd(new char[] { '/' });
if (!string.IsNullOrEmpty(Request.QueryString["paramName"])) {
    destUrl = string.Format("{0}?paramName={1}", destUrl, "paramValueHere");
Response.Redirect(destUrl);
1 голос
/ 01 февраля 2012

Проверить перезапись URL . Возможно, вам не удастся достичь прямого / myaccount direct, но вы можете привести свои URL в порядок, сделать их более читабельными и значимыми для SEO.

Вы сможете использовать, чтобы ваш URL выглядел примерно так:

www.sample.com/account/asdaasdasd

Если вы потеряете строку запроса все вместе, вы не сможете получить к ней доступ вообще. Если вы не реализовали какую-либо форму временного кода, который получит строку запроса, сохраните ее в сеансе, а затем перенаправьте на ваш /myaccount URL-адрес и верните его туда.

0 голосов
/ 01 февраля 2012

Используйте этот код в вашем Global.asax:

void Application_BeginRequest(object sender, EventArgs e)
{

    string[] parts = Request.RawUrl.Split(new char[]{'/'});

    if(Part[1] == "myaccount"))
        Context.RewritePath("http://www.sample.com?q=" + Part[2]);

}

и затем используйте этот адрес http://www.sample.com/myaccount/asdasdasd

0 голосов
/ 01 февраля 2012

С помощью простой манипуляции со строками вы можете сделать это:

string urlWithQuerystring = "http://www.sample.com?q=asdasdsdasd";
int queryStringPos = urlWithQuerystring.IndexOf("?");
string newUrl = String.Format("{0}/myaccount/", urlWithQuerystring.Substring(0, queryStringPos));
0 голосов
/ 01 февраля 2012

Я думаю, что вы имеете в виду перезапись URL.

Это довольно распространенное сообщение в блоге о перезаписи URL:

http://weblogs.asp.net/scottgu/archive/2007/02/26/tip-trick-url-rewriting-with-asp-net.aspx

Или, если у вас IIS7, теперь его стало проще:

http://www.iis.net/download/urlrewrite


С точки зрения изменения ?q=asdasdsdasd на /myaccount я не понимаю. Первый URL-адрес выглядит как типичный поисковый запрос, а второй - это URL-адрес, который, вероятно, будет использовать файлы cookie и т. Д. Для выбора переменных (как для учетной записи пользователя?).

Но перезапись URL-адресов можно использовать, чтобы при наличии профиля пользователя с URL-адресом, например:

www.sample.com? Userprofile.aspx? Пользователь = JohnSmith

Это можно переписать, используя часть johnsmith в качестве переменной, например:

www.sample.com / пользователь / JohnSmith

...