namespace mappingurl {
public class mapurl: IHttpModule {
void IHttpModule.Init(HttpApplication app) {
app.BeginRequest += new EventHandler(app_BeginRequest);
}
void app_BeginRequest(object sender, EventArgs e) {
try {
HttpApplication app = sender as HttpApplication;
string requestUrl = app.Request.RawUrl;
app.Context.RewritePath("/test/default.aspx?requestUrl=" + requestUrl);
app.Context.Items["VirtualUrl"] = requestUrl;
app.Response.Write(requestUrl);
} catch { }
}
void IHttpModule.Dispose() { }
}
}
Псевдоним для url - а
http://host_name/virt_cat/somepage.aspx
как можно отловить запросы по урлам
http://host_name/virt_cat/somepage/random_values и сделать им редирект на
этот урл
random_values с каждым запросом разное.
то есть:
первый запрос
http://host_name/virt_cat/somepage/12a73423 редирект на
http://host_name/virt_cat/somepage.aspx
второй запрос
http://host_name/virt_cat/somepage/4c568adf редирект на
http://host_name/virt_cat/somepage.aspx
....
использую ASP.net 2.0 и IIS 6.0
За ранее благодарен за помощь
Есть некий URL к примеру
как можно отловить запросы по урлам
http://host_name/virt_cat/somepage/random_values и сделать им редирект на
этот урл
random_values с каждым запросом разное.
то есть:
первый запрос
http://host_name/virt_cat/somepage/12a73423 редирект на
http://host_name/virt_cat/somepage.aspx
второй запрос
http://host_name/virt_cat/somepage/4c568adf редирект на
http://host_name/virt_cat/somepage.aspx
....
использую ASP.net 2.0 и IIS 6.0
За ранее благодарен за помощь
"http://host_name/virt_cat/somepage/*", в методе ProcessRequest которого выполнять перенаправление (context.Request.Redirect(...) - если мне не изменят память) на реальную страницу обработки.
Как создавать пободный обработчик я описывал в соседней ветке (про картинки с другого сайта).
http://host_name/virt_cat/somepage.aspx/12a73423 редирект на
http://host_name/virt_cat/somepage.aspx
а вот так нет (404)
http://host_name/virt_cat/somepage/12a73423 редирект на
http://host_name/virt_cat/somepage.aspx
:confused::confused::confused:
Нужно было написать пользовательский HttpModule а не GeneralHandler, к примеру вот так
Код:
Цитата:
В свойствах сайта на странице ”Virtual Directory” нажать кнопку ”Configuration”, в появившемся окне на странице Mappings в разделе ”Wildcard application maps …” добавить новый айтем со следующими параметрами: Executable=”C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll”, Verify_that_file_exist=false.
все после чего скомпиленный модуль положить в папку bin вашего сайтеца и радуемся :)
Цитата: Zushenskiy
также необходимо указать что обработку запросов на низком уровне должна проводить ASP.NET
Ну эт известные грабли ;)