آموزش و سورس نحوه ایجاد sitemap.xml به صورت پویا در Asp.Net
0 0

آموزش و سورس نحوه ایجاد sitemap.xml به صورت پویا در Asp.Net


آموزش و سورس نحوه ایجاد sitemap.xml به صورت پویا در Asp.Net

در این پست نحوه ایجاد sitemap.xml به صورت داینامیک را در Asp.Net به صورت کامل توضیح می دهیم.

در پست قبلی نحوه ایجاد صفحات داینامیک در Asp.Net را توضیح دادیم در این آموزش جهت کامل تر شدن آموزش قبلی این آموزش را دنبال کنید.

یکی از مولفه های اصلی در بهبود سئو داشتن فایل sitemap.xml به روز میباشد. این فایل حاوی لینکهای موجود در وب سایت میباشد که موتورهای جستجو مختلف از آن برای شناسایی و ایندکس لینکهای هر دامنه استفاده میکنند. در رابطه با صفحات داینامیک مانند بلاگها این فایل باید با استفاده از داده های موجود در پایگاه داده ساخته شود.

برای ایجاد فایل sitemap.xml  ما از دو متد استفاده کردیم.

متد WritePageNameInSiteMap

private void WritePageNameInSiteMap()
    {
        try
        {
            XmlWriter writer = XmlWriter.Create(Server.MapPath("~/sitemap.xml"));
            writer.WriteStartDocument();
            writer.WriteStartElement("urlset", "http://www.sitemaps.org/schemas/sitemap/0.9");

            WriteTag("1.0", "Daily", "http://www.iranganj.ir", writer);

            WriteTag("0.5", "weekly", "http://www.iranganj.ir/about.aspx", writer);
            WriteTag("0.5", "Monthly", "http://www.iranganj.ir/contact-us.aspx", writer);

            string query = "SELECT [PostID], [PageName], [Title], [Content] FROM [Pages]";
            string conString = ConfigurationManager.ConnectionStrings["constr"].ConnectionString;
            using (SqlConnection con = new SqlConnection(conString))
            {
                using (SqlCommand cmd = new SqlCommand(query))
                {
                    using (SqlDataAdapter sda = new SqlDataAdapter())
                    {
                        cmd.Connection = con;
                        sda.SelectCommand = cmd;
                        using (DataSet ds = new DataSet())
                        {
                            sda.Fill(ds, "ds");

                            foreach (DataRow dr in ds.Tables[0].Rows)
                            {
                                WriteTag("0.5", "Daily", "http://www.iranganj.ir/" + "post/" + dr["PostID"] + "/" + dr["PageName"], writer);
                            }
                        }
                    }
                }
            }

            writer.WriteEndDocument();
            writer.Close();

        }
        catch (System.Exception ex)
        {

        }

    }

در متد اول sitemap.xml را ایجاد کردیم و سپس همان طور که ملاحظه میکنید لینکهای ثابت وب سایت به صورت دستی اضافه شده و همچنین لینک های که از دیتابیس با دستور foeach خوانده می شود به فایل sitemap.xml اضافه می شود. این متد را باید زمانی که یک مطلب جدید به دیتابیس اضافه می شود فراخوانی کنید تا هر مطالب جدیدی که به سایت اضافه می شود فایل sitemap.xml بروز رسانی شود.

 

متد WriteTag

 private void WriteTag(string priority, string freq, string navigation, XmlWriter myWriter)
    {
        myWriter.WriteStartElement("url");

        myWriter.WriteStartElement("loc");
        myWriter.WriteValue(navigation);
        myWriter.WriteEndElement();

        myWriter.WriteStartElement("lastmod");
        myWriter.WriteValue(DateTime.Now.ToShortDateString());
        myWriter.WriteEndElement();

        myWriter.WriteStartElement("changefreq");
        myWriter.WriteValue(freq);
        myWriter.WriteEndElement();
        
        myWriter.WriteStartElement("priority");
        myWriter.WriteValue(priority);
        myWriter.WriteEndElement();

        myWriter.WriteEndElement();
    }

کار این متد نوشتن تگ ها می باشد که سه ورودی می گیرد

  1. loc : در این تگ آدرس URL صفحه قرار میگیرد.
  2. lastmod  : مشخص کننده تاریخ آخرین آپدیت صفحه میباشد.
  3. changefreq  : بیانگر میانگین دوره زمانی آپدیتهای صفحه میباشد و مقادیر آن میتوانند hourly, daily, weekly, monthly  و yearly باشند. همچنین برای صفحاتی که قرار نیست آپیدیت شوند از never استفاده کنید.
  4. priority : مقدار این تگ بین صفر تا یک هست و از آن برای مشخص کردن اولویت صفحه میتوانید استفاده کنید. مقدار پیش فرض آن نیم میباشد توجه داشته باشید این مقدار در تناسب با دیگر صفحات هست و اگر شما به تمام صفحات اولیت یک را بدهید یعنی هیچ صفحه ای بر دیگری اولیت ندارد.

تنها المان loc اجباری است و بقیه المانها اختیاری هستند.

نکته های درباره فایل sitemap.xml

  • تمامی url ها باید متعلق به یک هاست باشند.
  • حداکثر طول رشته ای فایل 2048 کاراکتر میباشد.
  • حداکثر تعداد URL ها 50000 میباشد.
  • حداکثر سایز فایل 50 مگا بایت میباشد.

دانلود

نویسنده حسین فتحی
گروه مطلب Asp.Net
نوع مطلب سورس کد و آموزش
تاریخ انتشار ۲۹ آذر ۱۳۹۳
منبع ایران گنج
تعداد نظرات ۰
قیمت کاربران VIP
توضیح توجه:
  • زمانی که روی لینک دانلود کلیک می کنید لینک دانلود به مدت 24 ساعت معتبر خواهد بود
  • لینک های دانلود دوره های آموزشی تا پایان دوره قابل دانلود می باشد.
  • برای خارج کردن فایل ها از حالت فشرده از ورژن جدید نرم افزار winrar استفاده کنید.
  • برای خارج کردن فایل ها از حالت فشرده لینک های دانلودی که چندین قسمت می باشند فقط قسمت اول را از حالت فشرده خارج کنید.
  • لطفا توضیحات نوشته شده برای مطالب را با دقت بخوانید.
  • برای نمایش فیلم ها می توانید از نرم افزار هایی مانند Km Player , VLC Player یا Media Player Classic استفاده کنید.

نظر / سوال

Captcha

این صفحه را می‌پسندم