开发者

How to catch all calls to *.html in my ASP.NET MVC application

Im building a small webshop and have run into a problem. The company which im building this webshop for has a lot of old SEO links pointing to products and categories. They, of course, do not want to loose these inbound links开发者_如何学JAVA and still want value from them. I need to catch an inbound link e.g. www.myshop.com/myproduct.html and relay it with a HTTP 301 to e.g. www.myshop.com/products/ShowProduct/42

Any ideas on how to do this, i did this before in a asp.net webforms with a generic handler, that intercepted all calls, but i cant seem to get that to work.. I need to do this in code, i dont have access to the IIS since its a web hotel. I know all the inbound links.


You could implement the Application_BeginRequest method to intercept all requests. In this method you can test on the Request.Url property to determine what to do.

Something like this (in Global.asax.cs):

    protected void Application_BeginRequest()
    {
        if (this.Request.Url.AbsolutePath.EndsWith(".html", StringComparison.OrdinalIgnoreCase))
        {
            // TODO: Apply logic here.
            this.Response.Redirect("/MyUrl/", true);
        }
    }

This will redirect all requests to *.html to /MyUrl/

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜