• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
思想的思想
很久很久以前,谎言和真实在河边洗澡,谎言先洗好,穿了真实的衣服离开, 真实却不肯穿谎言的衣服。后来,在人们的眼里,只有穿着真实衣服的谎言,却很难接受赤裸裸的真实
博客园    首页    新随笔    联系   管理    订阅  订阅

网站可以如此复制

主要思路就是url重定向。

打开iis,新建一个网站,名称为test,配置同一般的.net2.0配置。

建立成功后,有些地方需要修改。

为404错误重定向,这个是最关键的。选择属性-自定义错误-列表中双击404,消息类型选url,url的地方输入 /Handler.ashx

让iis不处理aspx等文件。选择属性-主目录-配置-应用程序扩展中把aspx删除。

这样iis就配置完成了,接着写一小段代码来处理404错误重定向的页面就可以了。

这里用httphandler来处理,也就是上面的Handler.ashx文件,这样不容易和其他文件冲突,用dll和webconfig配合其实更好。

打开vss2005,建立新网站,就是刚刚的iis路径。删掉那个default.aspx。

添加新项-一般处理程序-生成一个Handler.ashx。

添加如下代码:
<%@ WebHandler Language="C#" Class="Handler" %>

using System;
using System.Web;

public class Handler : IHttpHandler ...{
    
    
public void ProcessRequest (HttpContext context) ...{
        
        
//标记一下
        context.Response.ContentType = "text/plain";
        
        
//取得404错误重定向的参数和主机
        string strQuery = context.Request.Url.Query.Replace("?404;","").ToLower();
        
string localHost = context.Request.Url.Authority.ToLower();

        
//计算目标地址
        string targetHost = "www.3322173.com";
        
string queryUrl = strQuery.Replace(localHost, targetHost);
        
        

        
try
        
...{
            
//获取目标页面内容
            System.Net.WebClient wb = new System.Net.WebClient();
            
byte[] b = wb.DownloadData(queryUrl);

            
string type = wb.ResponseHeaders["Content-Type"];

            
//判断是否文档页面,这里可以稍微复杂些考虑到js和css等其他文件,多判断几个条件就可以了
            if (!string.IsNullOrEmpty(type) && type.ToLower().StartsWith("text/html"))
            
...{
                
//替换文档内容中的主机地址
                string str = System.Text.Encoding.Default.GetString(b);
                str 
= str.Replace(targetHost, localHost);
                context.Response.Write(str);
            }

            
else
            
...{
                
//如果是图片等直接输出
                context.Response.BinaryWrite(b);
            }

            context.Response.End();
        }

        
catch
        
...{ }
    }

 
    
public bool IsReusable ...{
        
get ...{
            
return false;
        }

    }


}

posted @ 2008-02-27 17:30  混世魔王  阅读(194)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3