Publikoval Michal Kočí dňa 6.12.2008 o 18:35 v kategórii .Net
Po dlhodobých problémoch s free webhostingom som sa konečne odhodlal, zaplatil si doménu a blog som na ňu presunul. Samozrejme, že nechcem dojsť o odkazy na blog za tie roky vybudované, takže trebalo zabezpečiť, aby všetky staré odkazy boli automaticky presmerované na doménu novú.
Takže, požiadavka bola jasná, pri akejkoľvek požiadavke na akýkoľvek resource na adrese http://mifko.aspweb.cz bola táto požiadavka presmerovaná na rovnaký resource na adrese http://blog.michalkoci.com. No a keďže webhosting je naďalej aktívny, nie je nič jednoduchšie, ako spraviť mini aplikáciu, ktorá všetky požiadavky presmeruje na novú adresu.
Presmerovanie je najlpšie robiť tak, že sa na požiadavku vráti stavový kód 301- Permanently moved, toto by malo byť aj SEO Friendly. A toto je najlepšie robiť v udalosti BeginRequest objektu Application:
protected void Application_BeginRequest(object sender, EventArgs e)
{
string server = ConfigurationSettings.AppSettings["server"];
string rawUrl = base.Request.RawUrl;
string newUrl = string.Format("{0}{1}", server, rawUrl);
Response.Clear();
Response.ClearHeaders();
Response.StatusCode = 301;
Response.Status = "301 Moved Permanently";
Response.AddHeader("Location", newUrl);
Response.Flush();
Response.Close();
}
To je jediný kód aplikácie, treba ešte do rootového adresára vložiť prázdny Default.aspx, aby adresár obsahoval niektorý z default dokumentov. A v neposlednom rade treba pridať web.config, ak chcete vedieť novú URL konfigurovať (v mojom prípade som toto riešenie použil už na dvoch weboch):
<?xml version="1.0"?>
<configuration>
<appSettings>
<add key="server" value="http://blog.michalkoci.com"/>
</appSettings>
</configuration>
Ak nechceš premeškať príspevky ako je tento, sleduj ma na Twitteri, alebo ak máš RSS čítačku, môžeš sledovať môj RSS kanál.