zoukankan      html  css  js  c++  java
  • 301重定向

    我们网站有一个问题一直困扰着我,就是存在两个域名kuchechina.com,http://www.kuchechina.com/

    虽说是以http://www.kuchechina.com/为主,但是site我们的域名,隔几页也会有不带www的。怕影响我们域名权重,决定做301重定向。

    以前只是听说过301重定响,没有做过。这次做起来,还真遇到一些问题。

    IIS重向定,设置比较麻烦,去网上查一些资料,参数都是一堆一堆的,又很难弄明白是怎么回事,就放弃了。下面就想做URL跳转。

    URL跳转逻辑很简单,aspx请求可以用HttpModule接管,在HttpModule写跳转问题不是很容易解决了吗?

    下面是我的代码

    namespace Cars.UI
    {
        
    public class HttpModule : IHttpModule
        {
            
    public void Init(HttpApplication application)
            {
                application.BeginRequest 
    += (new EventHandler(this.Application_BeginRequest));
            }
            
    private void Application_BeginRequest(Object sender, EventArgs e)
            {
                HttpContext context 
    = ((HttpApplication)sender).Context;

                
    string redirectUrl = "http://www.kuchechina.com";
                
    string requestUrl = context.Request.Url.ToString();

                redirectUrl 
    = requestUrl.Replace("http://kuchechina.com", redirectUrl);

                context.Response.Clear();
                context.Response.StatusCode 
    = 301;
                context.Response.Status 
    = "301 Moved Permanently";
                context.Response.AddHeader(
    "Location", redirectUrl);
                context.Response.End();
            }

            
    public void Dispose()
            {
            }

        }

    }

    代码全总在这里,想了解的朋友可以下载

    /Files/zhuyue/301Redirect.rar

    实现起来简单,可问题又出现了,要是域名路径中带目录,如:kuchechina.com/News/没有页面文件,就返回404错误了。怎么办呢?问题不好解决。再研究研究IIS重定向吧。问题还真的搞定了

    IIS设置如下:

    参数意义

    $S 传送与所请求 URL 的相匹配的后缀。匹配后缀是用重定向的 URL 代替之后,初始 URL 中所保留的部分。 如果 /Scripts 重定向到 /Newscripts,而原来请求的是 /Scripts/Program.exe,那么 /Program.exe 便是后缀。服务器自动执行后缀替换,$S 变量只能与其他变量结合使用。
    $Q 传递来自初始 URL 的问号 (?) 和参数。 例如,如果原来的 URL 是 /Scripts/Myscript.asp?number=1,那么字符串“?number=1”映射到目标 URL。

  • 相关阅读:
    Serializable读写类操作
    socket模拟通信
    使用poi实现生成excel文件
    注解形式的通知
    使用linkedhashmap实现LRU(最近最少使用缓存算法)
    websocket的使用
    centos systemctl daemon-reload 提示 no such file or directory 的一个原因
    mac 10.13 build 一个 redis desktop manager
    mac 必备工具
    supervisor 添加新配置不生效的问题
  • 原文地址:https://www.cnblogs.com/zhuyue/p/1807347.html
Copyright © 2011-2022 走看看