網站可以如此複製?

來源:互聯網
上載者:User

論壇中碰到如此問題:
我們做了一個網站,網域名稱是www.3322173.com
沒想到今天忽然發現了www.qiepeng.cn的內容和我們的是一模一樣...內容也是同步更新,只是把內容中3322173.com替換成qiepeng.cn
我關閉我自己的IIS後,兩個網域名稱都不能訪問了.
我鬱悶啊,這是什麼樣的技術哦.怎麼解決呢?

這個事情肇事人很無恥,也很容易對付,只要把對方伺服器ip屏蔽掉就ok了,如何?的呢,下面就以上面的例子講述。

主要思路就是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;
        }
    }

}

 

效果如下

直接運行就可以看到效果了。

申明:本文只針對技術方面討論,請不要用於不正當途徑,否則後果自負,本文作者jinjazz不承擔任何責任。
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.