网站可以如此复制
主要思路就是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;
}
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述