صفحة 1 من 3 123 الأخيرةالأخيرة
النتائج 1 إلى 15 من 35

الموضوع: إختصار URLs (روابط) المواقع الديناميكية ( تغير أمتداد php الى html )

  1. #1
    عضو جديد
    تاريخ التسجيل
    Nov 2005
    المشاركات
    21

    إختصار URLs (روابط) المواقع الديناميكية ( تغير أمتداد php الى html )



    السلام عليكم و رحمة الله و بركاته



    هذا الموضوع بسيط و خفيف و هام فى نفس الوقت
    لكن ربما يراه من لا يملكون دراية بلغات برمجة المواقع بشكل معقد لكن سأحاول تبسيطه


    ------------------------------------------------


    الموضوع يعتمد على اعدادات سيرفر اباتشى فسيكون التعامل عبر ملف htaccess.

    لكن قبل البدء فى النقاش وجب على ان اوضح المقصود مما سنفعله و بعض من الأسباب التى دفعتنا الى هذا

    و سنأخذ كمثال للغات برمجة المواقع الديناميكية لغة php

    فعندما نتصفح احد هذه المواقع نجد عناوين او بالأصح URLs الصفحات كهذا المثال :


    http://www.name.com/index.php?s=526&id=flash

    للتوضيح : كلاً من s و id متغيرات داخل الصفحة index.php تم تمريرها عبر الـ URL لتنفيذ قيمها


    و هذا ما نريد تغييره لأسباب منها
    1 - محركات البحث مثل جوجل تضع تقييم اقل لمثل هذه الـ URLs لأنها تعتبر مضللة و تعيق عملية البحث السليم.
    2 - هذه العناوين صعبة و غير عملية بالنسبة للمستخدم العادى .
    3 - فقدان العامل الأمنى - حيث من طرق اختراق المواقع هو تمرير معطيات ديناميكية تتفاعل داخل الملف مسببة إما مسح لبيانات او جلب معلومات سرية عن قاعدة البيانات و ما إلى ذلك.


    سرية عن قاعدة البيانات و ما إلى ذلك.
    عموما لنبدء الأن قم بعمل ملف جديد بإسم htaccess.
    ضع به هذا الكود

    كود:
    Options +FollowSymLinks
    RewriteEngine On
    RewriteRule ^s-([0-9]+)/([0-9A-Za-z]+).html index.php?s=$1&id=$2

    ربما الكود غير واضح بعض الشئ

    ---- انسخه و اطبعه فى اى محرر مثل Notepad و سيظهر بشكل واضح إنشاء الله

    لن اطيل عليكم و سأوضح ما نريده :

    فى السطر الثالث : s-([0-9]+)/([0-9A-Za-z]+).html^ عبارة عن regular expretion

    يمكنك التلاعب به كما تريد لو لديك الخبرة - ( هذه النقطة مفيدة فى التأمين )-

    index.php?s=$1&id=$2

    هنا ستكون قيمة المتغير s تساوى 1$
    و عند التطبيق سيتم استبدال 1$ بما يطابق ([0-9]+)

    و نفس ما حدث يتكرر مع id التى ساويناها مع 2$
    و عند التطبيق سيتم استبدال 2$ مع ما ينطبق عليه الشرط ([0-9A-Za-z]+)

    بحيث لو كان URL الصفحة هو :

    www.name.com/index.php?s=254&id=flash

    سيكون بعدها بهذا الشكل
    www.name.com/s-254/flash.html

    .................................................. .................................................. .............
    ملاحظات :

    ضع ملف htaccess. فى نفس المجلد الحاوى للملف المنفذة عليه العملية ( فى المثال كان الملف هو index.php )

    regular expretions : هى اسلوب او وسيلة لعمل قوالب حرفية --- اى ان اكون بها مقياس لشكل و ترتيب مجموعة من حروف
    كما فى هذا المثال البسيط

    (+[9-0])-s^ معناها ان اول حرف يجب ان يكون s و ذلك لأن سبقتها العلامة ^ ثم ثانى حرف هو الرمز - ( dash )
    ثم يليها اى رقم من 1 الى 9 و علامة + ( plus ) تفيد بأن الرقم من الممكن ان يتكرر مرة او اكثر

    *** بالطبع يمكنك البحث اكثر عن regular expretions لتعرفها بالتفصيل ***

    ...... بعض المواقع التي نفذت هذه الطريقة :
    www.droosy.com
    www.doroos.net
    -------------------------------------------------------------
    نتمنى أنكم فهمتوا الشرح ( إذا في شي غير مفهوم :: يرجي تبينه لي :: )


    تحياتي : جرح الإمارات








  2. #2
    عضو فعال جدا
    تاريخ التسجيل
    Feb 2004
    المشاركات
    2,307


    شكرا لك استاذ ..

    تم شرحة مسبقا في موضوع باسم mod_rewrite باسهل الطرق موجود هنا

    لكن زيادة الخير خيرين





    __________________
    بي اتش بي العرب : php-ar.com
    دروس PHP خاص : phpfaq.php-ar.com

    new site : www.naifphp.net/web

  3. #3
    عضو فعال
    تاريخ التسجيل
    Apr 2004
    المشاركات
    1,479


    درس جميل ومفيد





    __________________
    سبحان الله وبحمده .. سبحان الله العظيم
    المستضيفون العرب لخدمات ادارة السيرفرات

  4. #4
    مُجَاهِد سابقاً
    تاريخ التسجيل
    Apr 2004
    المشاركات
    12,000


    فعلاً تم طرحه مسبقاً ..
    ولكن زيادة الخير خيرين ..

    والف شكر لك ..
    وجزاك الله خير ..




    وخالص المودة ،،





    __________________
    استخدم خاصية تنبيه المشرفين للضرورة وعند ملاحظة موضوع يخالف قوانين منتديات سوالف وسيتم مراجعة الموضوع او المشاركة المبلغ عنها على الفور

  5. #5
    عضو نشيط جدا
    تاريخ التسجيل
    Nov 2000
    المشاركات
    504


    رائع يا اخي

    شرح ممتاز



    تحيه طيبه لك





    __________________
    لا اله الا الله وحده لا شريك له . له الملك وله الحمد وهو على كل شئ قدير

  6. #6
    عضو فعال جدا
    تاريخ التسجيل
    Jun 2003
    المشاركات
    2,123


    مشكور اخوي .





    __________________
    htaccess بكل بساطة

    الشفرة الموحدة "يونِكود"

    (إن من مفاسد هذه الحضارة أنها تسمي الاحتيال ذكاءً، والانحلال حرية، و"الرذيلة فناً" والاستغلال معونة) - مصطفى السباعي

  7. #7
    عضو فعال جدا
    تاريخ التسجيل
    Jun 2003
    المشاركات
    2,123


    لم تفلح الطريقة معي

    عملنا ملف باسم

    htaccess.

    المحتوي

    كود PHP:

    Options 
    +FollowSymLinks
    RewriteEngine On
    RewriteRule 
    ^s-([0-9]+)/([0-9A-Za-z]+).html index.php?id=$id 






    __________________
    htaccess بكل بساطة

    الشفرة الموحدة "يونِكود"

    (إن من مفاسد هذه الحضارة أنها تسمي الاحتيال ذكاءً، والانحلال حرية، و"الرذيلة فناً" والاستغلال معونة) - مصطفى السباعي

  8. #8
    عضو نشيط جدا
    تاريخ التسجيل
    Nov 2000
    المشاركات
    504


    الاخ jadweb.com


    محاوله مني جرب هذي الطريقه

    كود:
    Options +FollowSymLinks 
    RewriteEngine On 
    RewriteRule ^(.*)/([0-9A-Za-z]+).html index.php?id=$id
    و الرابط بالشكل هذا

    http://www.domain.com/$id.html





    __________________
    لا اله الا الله وحده لا شريك له . له الملك وله الحمد وهو على كل شئ قدير

  9. #9
    عضو فعال جدا
    تاريخ التسجيل
    Jun 2003
    المشاركات
    2,123


    مشكور اخوي السر في
    RewriteRule





    __________________
    htaccess بكل بساطة

    الشفرة الموحدة "يونِكود"

    (إن من مفاسد هذه الحضارة أنها تسمي الاحتيال ذكاءً، والانحلال حرية، و"الرذيلة فناً" والاستغلال معونة) - مصطفى السباعي

  10. #10


    مذا عن هذا الرابط

    http://www.any.com/any/index.php?pag...name=info&id=5


    كيف يمكن اختصاره الى .htm
    حاولت وفشلت :con2:

    لدي متغير id=5
    وأيضاً pagename=info

    ومذا عن page=opnepage !!

    فكيف نختصرها لتغلق على info.htm





    __________________
    مدونتي

  11. #11
    عضو فعال جدا
    تاريخ التسجيل
    Feb 2004
    المشاركات
    2,307


    تفضل اخي الفنان

    كود PHP:
    #SWITCH mod_rewrite OFF
    Options +FollowSymLinks
    RewriteEngine on
    #OUR ABOVE CODE
    RewriteRule ^([a-z]+)/([a-zA-Z0-9_-]+)/([0-9]+).htmindex.php?page=$1&pagename=$2&id=$
    بحيث ان

    page = حروف من a - z صغيره
    pagename = حروف من a - z كبيره او صغيره .. وارقام من 0 - 9 و - _
    id = ارقام فقط من 0 - 9 ومكرر قد تكون

    تحياتي





    __________________
    بي اتش بي العرب : php-ar.com
    دروس PHP خاص : phpfaq.php-ar.com

    new site : www.naifphp.net/web

  12. #12


    شكراً جريح

    لم يعمل معلي :shy:
    ماهو الشكل النهائي للوصلة ؟!





    __________________
    مدونتي

  13. #13
    عضو فعال جدا
    تاريخ التسجيل
    Feb 2004
    المشاركات
    2,307


    جرب

    كود PHP:
    #SWITCH mod_rewrite OFF 
    Options +FollowSymLinks 
    RewriteEngine on 
    #OUR ABOVE CODE 
    RewriteRule ^arblog_([a-z]+)/([a-zA-Z0-9_-]+)/([0-9]+).htmindex.php?page=$1&pagename=$2&id=$
    االرابط

    arblog_opnepage/$pagename/$id.htm

    arblog_opnepage/NaiFPHP/77.htm





    __________________
    بي اتش بي العرب : php-ar.com
    دروس PHP خاص : phpfaq.php-ar.com

    new site : www.naifphp.net/web

  14. #14
    عضو نشيط جدا
    تاريخ التسجيل
    Jan 2005
    المشاركات
    508


    هل تستطيع تعديله ليناسب روابط الفور اميج


    شكرا





    __________________
    www.d6b.net

  15. #15
    عضو جديد
    تاريخ التسجيل
    Nov 2005
    المشاركات
    21


    أسف أخوي على تأخير ( نعم تستطيع تحويل سكربت 4images )

    و هذا الشرح ...


    1- أفتح ملف (includes/sessions.php)
    أبحث عن :

    كود:
    function url($url, $amp = "&") {
        global $l;
        $dummy_array = explode("#", $url);
        $url = $dummy_array[0];
    
        if ($this->mode == "get" && !preg_match("/".SESSION_NAME."=/i", $url)) {
          $url .= preg_match("/\?/", $url) ? "$amp" : "?";
          $url .= SESSION_NAME."=".$this->session_id;
        }
    
        if (!empty($l)) {
          $url .= preg_match("/\?/", $url) ? "$amp" : "?";
          $url .= "l=".$l;
        }
    
        $url .= (isset($dummy_array[1])) ? "#".$dummy_array[1] : "";
        return $url;
      }

    أستبدله بــ

    كود:
    /* ORIGINAL CODE
      function url($url, $amp = "&") {
        global $l;
        $dummy_array = explode("#", $url);
        $url = $dummy_array[0];
    
        if ($this->mode == "get" && !preg_match("/".SESSION_NAME."=/i", $url)) {
          $url .= preg_match("/\?/", $url) ? "$amp" : "?";
          $url .= SESSION_NAME."=".$this->session_id;
        }
    
        if (!empty($l)) {
          $url .= preg_match("/\?/", $url) ? "$amp" : "?";
          $url .= "l=".$l;
        }
    
        $url .= (isset($dummy_array[1])) ? "#".$dummy_array[1] : "";
        return $url;
      }
    */
      function url($url, $amp = "&") {
        global $l, $user_info;
        $dummy_array = explode("#", $url);
        $url = $dummy_array[0];
        $url = str_replace('&', '&', $url);
        if (!defined('IN_CP')) {
          if (strstr($url, 'index.php')) {
            $url = str_replace('index.php', '', $url);
          }
          elseif (strstr($url, 'search.php')) {
            if (strstr($url, 'page=')) {
              preg_match('#page=([0-9]+)&?#', $url, $matches);
              if (isset($matches[1])) {
                $split = explode('?', $url);
                $url = $split[0];
                $query = @$split[1];
                $url   = str_replace('search.php', 'search.'.$matches[1].'.htm', $url);
                $query = str_replace('page='.$matches[1].'&', '', $query);
                $query = str_replace('&page='.$matches[1], '', $query);
                $query = str_replace('page='.$matches[1], '', $query);
                if (!empty($query)) {
                  $url .= '?' . $query;
                }
              }
            }
            else {
              $url = str_replace('search.php', 'search.htm', $url);
            }
          }
          elseif (strstr($url, 'lightbox.php')) {
            if (strstr($url, 'page=')) {
              preg_match('#page=([0-9]+)&?#', $url, $matches);
              if (isset($matches[1])) {
                $split = explode('?', $url);
                $url = $split[0];
                $query = @$split[1];
                $url   = str_replace('lightbox.php', 'lightbox.'.$matches[1].'.htm', $url);
                $query = str_replace('page='.$matches[1].'&', '', $query);
                $query = str_replace('&page='.$matches[1], '', $query);
                $query = str_replace('page='.$matches[1], '', $query);
                if (!empty($query)) {
                    $url .= '?' . $query;
                }
              }
            }
            else {
              $url = str_replace('lightbox.php', 'lightbox.htm', $url);
            }
          }
          elseif (strstr($url, 'categories.php')) {
            if (strstr($url, 'cat_id=') && strstr($url, 'page=')) {
              preg_match('#cat_id=([0-9]+)&?#', $url, $matches1);
              preg_match('#page=([0-9]+)&?#', $url, $matches2);
              if (isset($matches1[1]) && isset($matches2[1])) {
                $split = explode('?', $url);
                $url = $split[0];
                $query = @$split[1];
                $url   = str_replace('categories.php', 'cat'.$matches1[1].'.'.$matches2[1].'.htm', $url);
                $query = str_replace('cat_id='.$matches1[1].'&', '', $query);
                $query = str_replace('&cat_id='.$matches1[1], '', $query);
                $query = str_replace('cat_id='.$matches1[1], '', $query);
                $query = str_replace('page='.$matches2[1].'&', '', $query);
                $query = str_replace('&page='.$matches2[1], '', $query);
                $query = str_replace('page='.$matches2[1], '', $query);
                if (!empty($query)) {
                  $url .= '?' . $query;
                }
              }
            }
            elseif (strstr($url, 'cat_id=')) {
              preg_match('#cat_id=([0-9]+)&?#', $url, $matches);
              if (isset($matches[1])) {
                $split = explode('?', $url);
                $url = $split[0];
                $query = @$split[1];
                $url   = str_replace('categories.php', 'cat'.$matches[1].'.htm', $url);
                $query = str_replace('cat_id='.$matches[1].'&', '', $query);
                $query = str_replace('&cat_id='.$matches[1], '', $query);
                $query = str_replace('cat_id='.$matches[1], '', $query);
                if (!empty($query)) {
                  $url .= '?' . $query;
                }
              }
            }
            else {
              $url = str_replace('categories.php', 'cat.htm', $url);
            }
          }
          elseif (strstr($url, 'details.php?image_id=')) {
            if (strstr($url, 'image_id=') && strstr($url, 'mode=')) {
              preg_match('#image_id=([0-9]+)&?#', $url, $matches1);
              preg_match('#mode=([a-zA-Z0-9]+)&?#', $url, $matches2);
              if (isset($matches1[1]) && isset($matches2[1])) {
                $split = explode('?', $url);
                $url = $split[0];
                $query = @$split[1];
                $url   = str_replace('details.php', 'img'.$matches1[1].'.'.$matches2[1].'.htm', $url);
                $query = str_replace('image_id='.$matches1[1].'&', '', $query);
                $query = str_replace('&image_id='.$matches1[1], '', $query);
                $query = str_replace('image_id='.$matches1[1], '', $query);
                $query = str_replace('mode='.$matches2[1].'&', '', $query);
                $query = str_replace('&mode='.$matches2[1], '', $query);
                $query = str_replace('mode='.$matches2[1], '', $query);
                if (!empty($query)) {
                  $url .= '?' . $query;
                }
              }
            }
            else {
              preg_match('#image_id=([0-9]+)&?#', $url, $matches);
              if (isset($matches[1])) {
                $split = explode('?', $url);
                $url = $split[0];
                $query = @$split[1];
                $url   = str_replace('details.php', 'img'.$matches[1].'.htm', $url);
                $query = str_replace('image_id='.$matches[1].'&', '', $query);
                $query = str_replace('&image_id='.$matches[1], '', $query);
                $query = str_replace('image_id='.$matches[1], '', $query);
                if (!empty($query)) {
                  $url .= '?' . $query;
                }
              }
            }
          }
          elseif (strstr($url, 'postcards.php?image_id=')) {
            preg_match('#image_id=([0-9]+)&?#', $url, $matches);
            if (isset($matches[1])) {
              $split = explode('?', $url);
              $url = $split[0];
              $query = @$split[1];
              $url   = str_replace('postcards.php', 'postcard.img'.$matches[1].'.htm', $url);
              $query = str_replace('image_id='.$matches[1].'&', '', $query);
              $query = str_replace('&image_id='.$matches[1], '', $query);
              $query = str_replace('image_id='.$matches[1], '', $query);
              if (!empty($query)) {
                $url .= '?' . $query;
              }
            }
          }
        }
        if ($this->mode == "get" && strstr($url, $this->session_id)) {
          $url .= strpos($url, '?') !== false ? '&' : '?';
          $url .= SESSION_NAME."=".$this->session_id;
        }
        if (!empty($l)) {
          $url .= strpos($url, '?') ? '&' : '?';
          $url .= "l=".$l;
        }
        $url = str_replace('&', $amp, $url);
        $url .= isset($dummy_array[1]) ? "#".$dummy_array[1] : "";
        return $url;
      }
    ثم أفتح ملف txt جديد و سمه .htaccess
    و ضع فيه هذا :

    كود:
    # Begin search engine friendly links code
    RewriteEngine On
    #RewriteBase /
    RewriteRule ^lightbox\.htm$ lightbox.php?%{QUERY_STRING}
    RewriteRule ^lightbox\.([0-9]+)\.htm$ lightbox.php?page=$1&%{QUERY_STRING}
    
    RewriteRule ^search\.htm$ search.php?%{QUERY_STRING}
    RewriteRule ^search\.([0-9]+)\.htm$ search.php?page=$1&%{QUERY_STRING}
    
    RewriteRule ^cat\.htm$ categories.php?%{QUERY_STRING}
    RewriteRule ^cat([0-9]+)\.([0-9]+)\.htm$ categories.php?cat_id=$1&page=$2&%{QUERY_STRING}
    RewriteRule ^cat([0-9]+)\.htm$ categories.php?cat_id=$1&%{QUERY_STRING}
    
    RewriteRule ^img([0-9]+)\.htm$ details.php?image_id=$1&%{QUERY_STRING}
    RewriteRule ^img([0-9]+)\.([a-zA-Z0-9]+)\.htm$ details.php?image_id=$1&mode=$2&%{QUERY_STRING}
    
    RewriteRule ^postcard([a-zA-Z0-9]+)\.htm$ postcards.php?postcard_id=$1&%{QUERY_STRING}
    RewriteRule ^postcard\.img([0-9]+)\.htm$ postcards.php?image_id=$1&%{QUERY_STRING}
    
    # End search engine friendly links code
    --------
    عندك السطر : #RewriteBase /
    أكتب أسم المجلد الذي فيه السكربت ( مثال : RewriteBase /gallery/ )

    تم نقل و تعريب الشرح من ( أضغط هنا )


    تحياتي أخوكم : جرح الإمارات










ضوابط المشاركة

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •  

أضف موقعك هنا| اخبار السيارات | حراج | شقق للايجار في الكويت | بيوت للبيع في الكويت | دليل الكويت العقاري | مقروء | شركة كشف تسربات المياه | شركة عزل اسطح بالرياض | عزل فوم بالرياض| عزل اسطح بالرياض | كشف تسربات المياة بالرياض | شركة عزل اسطح بالرياض