#asp.net
#asp.net
Вопрос:
У меня есть два производственных веб-сайта с похожим контентом. Один из этих веб-сайтов должен быть проиндексирован поисковыми системами, а другой — нет. Есть ли способ добавить содержимое к ответу, предоставленному клиенту, используя HttpModule?
В моем случае мне нужен HttpModule для добавления к ответу, отправляемому, когда модуль активен в этой конкретной сети.
Ответ №1:
Вероятно, вы захотите обработать PreRequestHandlerExecute
событие приложения при его запуске непосредственно перед IHttpHandler
обработкой самой страницы:
public class NoIndexHttpModule : IHttpModule
{
public void Dispose() { }
public void Init(HttpApplication context)
{
context.PreRequestHandlerExecute = AttachNoIndexMeta;
}
private void AttachNoIndexMeta(object sender, EventArgs e)
{
var page = HttpContext.Current.CurrentHandler as Page;
if (page != null amp;amp; page.Header != null)
{
page.Header.Controls.Add(new LiteralControl("<meta name="robots" value="noindex, follow" />"));
}
}
}
Другой способ сделать это — создать свою собственную Stream
реализацию и применить ее через Response.Filters
, но это, безусловно, сложнее.