Redirect 301 global.asax (blogengine.net)

mercoledì 10 ottobre 2012 - 14.42
Tag Elenco Tags  C#  |  .NET 4.0  |  Windows Server 2008 R2  |  Visual Studio 2010

fabry19dice Profilo | Newbie

Vorrei indirizzare il mio vecchio url www.informarea.it/BlogEngine al nuovo URL www.informarea.it...

il mio global.asax di blogengine.net 2.5 è cosi

void Application_BeginRequest(object source, EventArgs e)
{
HttpApplication app = (HttpApplication)source;
HttpContext context = app.Context;

// Attempt to perform first request initialization
FirstRequestInitialization.Initialize(context);
}

come posso fare ad applicare, al codice appena scritto, il codice sottostante di redirect permanently

if (app.url.ToString().ToLower().Contains("http://www.informarea.it/BlogEngine"))
{

HttpContext.Current.Response.Status = "301 Moved Permanently";

HttpContext.Current.Response.AddHeader("Location",url.Replace("http://www.informarea.it/blogengine", "http://www.informarea.it"));

}

potete aiutarmi? grazie mille
Ciao
Fabrizio

Gluck74 Profilo | Guru

se ho capito bene il tuo intento:
Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra
____________
http://glucolo.wordpress.com
Ricordati di utilizzare il tasto "Accetta" se i nostri consigli ti sono serviti a risolvere il problema.
È il modo per ringraziare chi ti ha aiutato.

fabry19dice Profilo | Newbie

Grazie Gluck
ma il problema è questa riga di codice che devo obbligatoriamente inserire... non capisco cosa contiene context !!

// Attempt to perform first request initialization
FirstRequestInitialization.Initialize(context);

che richiama la private class sottostante ... utile per inizializzare BLOGENGINE.NET

private class FirstRequestInitialization
{
private static bool _initializedAlready = false;
private readonly static object _SyncRoot = new Object();

// Initialize only on the first request
public static void Initialize(HttpContext context)
{
if (_initializedAlready) { return; }

lock (_SyncRoot)
{
if (_initializedAlready) { return; }

Utils.LoadExtensions();
_initializedAlready = true;
}
}
}

inoltre nel begin reguest viene utilizzato il parametro source
HttpApplication app = (HttpApplication)source;
HttpContext context = app.Context;


ti allego cmq il mio global.asax , che poi è quello di blogengine.net cosi puoi capire com'è strutturato

grazie mille
ciao
fabrizio

fabry19dice Profilo | Newbie

Una cosa del genere? potrebbe funzionare?

void Application_BeginRequest(object source, EventArgs e)
{
HttpApplication app = (HttpApplication)source;

string thisUrl = app.Request.Url.ToString().ToLower();
if (thisUrl.Contains("http://www.informarea.it/BlogEngine"))
{
HttpContext.Current.Response.Status = "301 Moved Permanently";
HttpContext.Current.Response.AddHeader("Location",
thisUrl.Replace(
"http://www.informarea.it/BlogEngine",
"http://www.informarea.it"
)
);

HttpContext context = app.Context;

// Attempt to perform first request initialization
FirstRequestInitialization.Initialize(context);
}

Ciao
Fabrizio

Gluck74 Profilo | Guru

il codice che ti ho scritto io, è la correzione di quello che hai postato tu, che devi AGGIUNGERE al codice che hai già nella posizione che preferisci:
o direttamente dentro il Application_BeginRequest, o dentro al tua funzione FirstRequestInitialization.Initialize.

Non devi cancellare le altre righe.

ciao
____________
http://glucolo.wordpress.com
Ricordati di utilizzare il tasto "Accetta" se i nostri consigli ti sono serviti a risolvere il problema.
È il modo per ringraziare chi ti ha aiutato.

fabry19dice Profilo | Newbie

si l'avevo capito vorrei soltanto capire la sequenza e in quale punto all'interno della funzione inserire il tuo codice...
tutto qui!!

fabry19dice Profilo | Newbie

Gluck non funziona ho provato a testarlo in locale creando un'altra application e cancellando la vecchia
ecco quello che ho fatto

void Application_BeginRequest(object source, EventArgs e)
{

HttpApplication app = (HttpApplication)source;

string thisUrl = app.Request.Url.ToString().ToLower();

if (thisUrl.Contains("http://localhost/BlogEngine"))
{
HttpContext.Current.Response.Status = "301 Moved Permanently";
HttpContext.Current.Response.AddHeader("Location",thisUrl.Replace("http://localhost/BlogEngine","http://localhost/BlogEnginese"));
}
HttpContext context = app.Context;

// Attempt to perform first request initialization
FirstRequestInitialization.Initialize(context);

}

Il risultato che ottengo scrivendo nella barra degli indirizzi http://localhost/BlogEngine è questo:

http://localhost/blogenginese/BlogEngine/

sai come posso risolvere???
grazie mille
ciao
Fabrizio
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5