یکی از مسائلی که همیشه برای وب سایت، از نظر موتورهای جستجو بسیار مهم است، مقوله SEO Friendly بودن آدرسهاست. خوشبختانه در ASP.NET MVC این مقوله به خوبی پوشش داده شده است. برای مثال این قابلیت در ASP.NET Webforms توسط بسته نرم افزاری به نام ASP.NET FriendlyUrlsتوسط تیم توسعه دهنده ASP.NET ارائه شده است. در این زمینه قبلا آقای کاویانیدر همین سایت در صفحهمروری بر قابلیت جدید ASP.NET FriendlyUrls به این مقوله پرداختهاند و با مثال، نحوهی استفاده از این بستهی نرم افزاری را آموزش دادهاند.
یکی از مسائلی که در ASP.NET Webforms با آن مواجهبودیمانتقال دائمی آدرسهای صفحات یا همان Permanent Redirect بود.
در واقع زمانیکه شما در حالت عادی از بستهی نرم افزاری مذکور استفاده میکنید، این افزونه باعث SEO Friendly شدن آدرسهای صفحات شما میگردد. با در نظر گرفتن اینکه شما مطلبمروری بر قابلیت جدید ASP.NET FriendlyUrls را مطالعه کرده اید، به فرض مثال کد زیر:
و رجیستر کردن آن در RouteTable سایت به صورت زیر در فایل Global
باعث میشود که با زدن آدرس http://www.dotnettips.info/sitemap.xml آدرس http://www.dotnettips.info/sitemap.aspx لود شود؛ اما در نوار آدرس، همان آدرس sitemap.xml باقی خواهد ماند.
در این روش در صورتیکه کاربر آدرس http://www.dotnettips.info/sitemap.aspx را در مرورگر خود تایپ کند باز هم سایت کار میکند (آدرس مورد نظر در دسترس است) و فاجعه زمانی شروع میشود که موتور جستجو، با محتوی تکراری در سایت در دو آدرس مختلف مواجه شود (پست آقای نصیری را دربهبود SEO در ASP.NET MVC بررسی کنید) .
یا زمانیکه شما صفحات قدیمی دارید و میخواهید آنها را به آدرسهای جدید منتقل کنید. برای رفع این مشکل طوریکه هر زمان آدرس قدیمی هم وارد سیستم مسیریابی سایت شود به صورت اتوماتیک به آدرس جدید به صورت دائم منتقل شود، میتوانید کد بالا را به صورت زیر اصلاح نمایید:
با این تنظیمات، سیستم مسیریابی ملزم به انتقال دائمی آدرس، به آدرس جدید خواهد شد. یعنی شما حتی اگر آدرس http://www.dotnettips.info/sitemap.aspx را وارد نمایید مسیریاب سایت برای آدرس مورد نظر، وضعیت 301 Moved Permanently را مقدار دهی کرده و فقط آدرس http://www.dotnettips.info/sitemap.xml به عنوان آدرس اصلی در نظر گرفته خواهد شد.
یکی از مسائلی که در ASP.NET Webforms با آن مواجه
در واقع زمانیکه شما در حالت عادی از بستهی نرم افزاری مذکور استفاده میکنید، این افزونه باعث SEO Friendly شدن آدرسهای صفحات شما میگردد. با در نظر گرفتن اینکه شما مطلبمروری بر قابلیت جدید ASP.NET FriendlyUrls را مطالعه کرده اید، به فرض مثال کد زیر:
public static class RouteConfig { public static void RegisterRoutes(RouteCollection routes) { routes.EnableFriendlyUrls(); routes.MapPageRoute("Sitemap", "sitemap.xml", "~/sitemap.aspx"); } }
protected void Application_Start(object sender, EventArgs e) { RouteConfig.RegisterRoutes(RouteTable.Routes); }
در این روش در صورتیکه کاربر آدرس http://www.dotnettips.info/sitemap.aspx را در مرورگر خود تایپ کند باز هم سایت کار میکند (آدرس مورد نظر در دسترس است) و فاجعه زمانی شروع میشود که موتور جستجو، با محتوی تکراری در سایت در دو آدرس مختلف مواجه شود (پست آقای نصیری را دربهبود SEO در ASP.NET MVC بررسی کنید) .
یا زمانیکه شما صفحات قدیمی دارید و میخواهید آنها را به آدرسهای جدید منتقل کنید. برای رفع این مشکل طوریکه هر زمان آدرس قدیمی هم وارد سیستم مسیریابی سایت شود به صورت اتوماتیک به آدرس جدید به صورت دائم منتقل شود، میتوانید کد بالا را به صورت زیر اصلاح نمایید:
public static void RegisterRoutes(RouteCollection routes) { routes.EnableFriendlyUrls(new FriendlyUrlSettings() { AutoRedirectMode = RedirectMode.Permanent, ResolverCachingMode = ResolverCachingMode.Dynamic }); routes.MapPageRoute("Sitemap", "sitemap.xml", "~/sitemap.aspx"); }