صنع موقع يمكن لمحركات البحث أن تبحث في صفحاته 

للذين لا يعرفون كيف تعمل محركات البحث، ببساطة انها تستعمل Agents  أو  bots بحيث تنطلق هذه الAgents كل فترة محددة و تبحث في كل صفحة تجدها عن عناوين صفحات (أو مواقع أخرى)، و من هذه الصفحات التي تجدها تنطلق الى غيرها، و في كل مرة تجد صفحة جديدة تخزن نسخة منها لتسريع أي عملية بحث، لهذا يستطيع google.com  مثلا أن يجد ما تريد بأعشار الثانية

 

كل سنة تنفق الشركات والافراد الملايين من الدولارات على مواقع الانترنت التي تعتمد على قواعد البيانات لعرض محتوى ديناميكي(Dynamic Content). ومع ذلك ، فان هذه المواقع لا تلقى ما تستحقه. تستخدم قاعدة البيانات في المواقع لان ادارتها اسهل بكثير من المواقع ساكنة المحتوى(Static Content). عادة ، كل ما يلزم لتحديث محتويات قاعدة بيانات مدفوعه الموقع عليه فى اجراء التغييرات فى بعض الجداول في قاعدة البيانات.


عادة، هذه المواقع (أو معظمها) تعتمد على تمرير Variables في الURL، حيث يمكن التقاطها في Page_Load event، عبر استعمال request.querystring(“ArticleID”) مثلاً. و ذلك لسهولة هذه الطريقة، فهي اسهل طريقة لتمرير المعلومات بين صفحات الويب.

للذين لا يعلمون، معظم محركات البحث لا تستطيع او لا تريد اي ديناميه قائمة في عنوان الموقع(مثلاً ال?@!#$)، فبالتالي، أي link تشبه التالي لن تفهرس في محركات البحث:

Article.aspx?ArticleID=1

 بالتالي، أي معلومات مهما كانت مهمة، لن يستطيع أحد أن يجدها في محرك البحث (70% من نسبة الزيارات تأتي من محركات البحث مباشرة)
للمعلومات العامة أيضاً، يوجد كتب كاملة عن علم جديد اسمه "علم نفس محركات البحث" أو Psychology of Search Engines، حيث يجب على المطور أن يعتني بالكثير من التعديلات التي تتيح لموقعه بأن يظهر بأول نتائج البحث (لكن تبقى أهم اضافة و هي أهمية الموقع نفسه!)

لتمكبن الAgents من الوصول الى كل الصفحات التي داخل موقعك، عليك تحويله الى ما يسمى  موقع مع صلات ودية لمحركات البحث (Search Engine Friendly Web Site)، أي تحويل الصفحة من

http://www.arabic-asp.net/Article.aspx?ArticleId=1

 الى

http://www.arabic-asp.net/Article1.aspx

 

انها ليست عملية معقدة أبداً:

 

افتح الGlobal.ASAX (ان لم يكن موجوداً أضفه بكل بساطة) و ضع هذه الأسطر
 
Adding Global.asax
 
 
Adding Global.asax
 
<%@ Application Language="C#" %>

<script runat="server">

protected void Application_BeginRequest(Object sender, EventArgs e)

{

HttpContext incoming = HttpContext.Current;

string oldpath = incoming.Request.Path.ToLower();

string pageid; // page id requested

// Regular expressions to grab the page id from the pageX.aspx

Regex regex = new Regex(@"article(\d+).aspx", RegexOptions.IgnoreCase | RegexOptions.IgnorePatternWhitespace);

MatchCollection matches = regex.Matches(oldpath);

if (matches.Count > 0)

{

// Extract the page id and send it to Process.aspx

pageid = matches[0].Groups[1].ToString();

incoming.RewritePath("Article.aspx?articleid=" + pageid);

}

else

{ // Display path if it doesn’t containt pageX.aspx

incoming.RewritePath(oldpath);

}

}

</script>

  
 
 
 
 
هذا الكود كفيل بالبحث عن Article#.aspx   حيث يمثل   # أي رقم
 

 

جربها بمحاولة الدخول الى

 

http://www.arabic-asp.net/Article3.aspx

 

4/16/2008 2:09:00 PM
      
Copyright © 2007-2008 Samer Farhat, Arabic-ASP.NET