Knowledgebase

تعرف على .htaccess 301 إعادة التوجيه لعناوين URL

  • كيفية تحديد عنوان URL, URL, كيفية كتابة 301 Redirect لصفحة ذات عنوان URL
  • 0

من حين لآخر ، قد تحتاج إلى إعادة توجيه عنوان URL يتضمن سلسلة استعلام.سيتطلب ذلك استخدام RewriteEngine لجعل قاعدة إعادة التوجيه تجلب المشاهدين بشكل صحيح إلى الصفحة الصحيحة.اتبع الإرشادات الواردة في البرنامج التعليمي أدناه لإنشاء قاعدة إعادة توجيه إعادة التوجيه لصفحة معينة.ستعمل إعادة التوجيه مع سلسلة استعلام.

كيفية تحديد عنوان URL باستخدام سلسلة استعلام
ستحتاج أولاً إلى تحديد تلك الحالات التي تحتاج فيها إلى استخدام هذا النوع من قاعدة الكتابة.من السهل للغاية تحديد عناوين URL التي تحتوي على سلسلة استعلام.سترى علامة استفهام بعد مرجع الصفحة ثم سيتم التعبير عن قيمة.فمثلا:

 
تحدث سلسلة الاستعلام بعد علامة الاستفهام.هذه القيم هي نتيجة الاستعلام الذي قد يولد صفحة معينة.في هذا المثال ، ستحتاج إلى إعادة كتابة عنوان URL بحيث يتم استخدام النطاق الجديد مع الاحتفاظ بقيم الاستعلام.الشفرة الموضحة أدناه هي إعادة كتابة 301 لإعادة التوجيه المطلوب باستخدام سلسلة الاستعلام.في هذا نحن ببساطة إعادة كتابة النطاق إلى "new_domain.com" أثناء إضافة قيمة سلسلة الاستعلام إلى نهاية عنوان URL.

RewriteEngine On
RewriteCond٪ {REQUEST_URI} ^ \ / querypage \ .php $
RewrriteCond٪ {QUERY_STRING} ^ id = ([0-9] *)
RewriteRule ^ (. *) $ http://new_domain.com/querypage/٪1 [R = 301، L]
 
 
ما هو هذا الرمز؟"RewriteCond٪ [REQUEST_URI}" و "RewriteCond٪ {QUERY_STRING}" و "RewriteRule" هي أوامر خادم Apache.تتطلب هذه الأوامر mod_rewrite أن تكون نشطة.بعد كل أمر هو تعبير عادي يستخدم لتحديد أو مطابقة جزء من عنوان URL.لمزيد من المعلومات ، راجع وثائق أباتشي الرسمية لـ mod_rewrite من وحدة أباتشي (الإصدار 2.4).

انهيار كود إعادة الكتابة للفهم:
RewriteEngine On - وهذا يتيح وحدة المحرك mod_rewrite.

RewrriteCond٪ {REQUEST_URI} يحدد هذا طلب عنوان URL المقدم في المتصفح.يحدد التعبير العادي الجزء الفريد من طلب عنوان URL مع التعبير ^ / querypage \ .php $.يشير ^ (قيراط) إلى البداية ويشير $ إلى نهاية الجزء الذي تم تحديده من عنوان URL.يتم استخدام "\" أمام أي فترات داخل عنوان URL.لاحظ أن هذا الشرط حساس لحالة الأحرف.لجعلها غير حساسة لحالة الأحرف ، يمكنك إضافة العلامة [NC] في نهاية العبارة.
 
يحدّد RewriteCond٪ {QUERY_STRING} سلسلة طلب البحث في عنوان URL. في هذه الحالة ، يكون "معرف = 5". يتم استخدام التعبير العادي لتحديد القيمة التي تبدأ العبارة مع رمز قيراط (^) ، ثم تنتهي بـ "$"
 
.الجزء الأخير من إعادة التوجيه لعنوان URL الخاص بك مع سلسلة استعلام هو قاعدة إعادة الكتابة الفعلية. هذا هو القسم الذي يغيّر عنوان URL طالما تم استيفاء شروط إعادة الكتابة. RewriteRule ^ (. *) $ http://new_domain.com/querypage/٪1 [R = 301، L]
تحدد بداية القاعدةrewrite - ^ (. *) $ - ما الذي تقوم بتغييره ، وهو إجمالي URL. الجزء الثاني - http://new_domain.com/querypage٪1 - يعرض ما تتم إعادة كتابته. لاحظ أن الجزء "٪ 1" يعرّف القيمة المطابقة في سلسلة الاستعلام ({QUERY_STRING}).
الجزء الأخير من القاعدة- [R = 301 ، L] - يشير إلى نوع إعادة التوجيه المستخدم "R = 301" والعلامة "L" والتي تعني أساسًا أن هذه هي نهاية القاعدة. سيتوقف إعادة الكتابة عن المعالجة في هذه المرحلة.
الآن بعد أن فهمت الأجزاء المختلفة من شفرة إعادة الكتابة الفعلية دعنا نراجع عملية كتابة إعادة الكتابة لسلسلة استعلام.
 
 
كيفية كتابة 301 Redirect لصفحة ذات عنوان URL لسلسلة الاستعلام
 
 

  • RewriteEngine-on
    يجب أن يبدأ رمز إعادة الكتابة الخاص بك بـ RewriteEngine On. هذا يفترض أن وحدة mod_rewrite لملقم أباتشي الخاص بك نشط. ملاحظة: الوحدة النمطية mod_rewrite نشطة على خوادم استضافة astdafa افتراضيًا.
     
     
     
  • request URI
    حدد عنوان URL المطلوب الذي يقوم بتشغيل إعادة الكتابة. على سبيل المثال ، يمكن أن يكون هذا الشرط صفحة محددة وفريدة داخل عنوان URL الذي تريد إعادة توجيهه. في المثال المستخدم في هذا البرنامج التعليمي - RewriteCond٪ {REQUEST_URI} ^ / querypage \ .php $ - تم تعيين URI المطلوب إلى "querypage.php".
     
     
     
  • query string
    السطر التالي من عملية الكتابة هو الجزء الذي يحدد القيمة المستخدمة في سلسلة الاستعلام - RewriteCond٪ {QUERY_STRING} ^ id = ([0-9] *). يطابق هذا الاستعلام أي قيمة رقمية يتم تقديمها للمعرف. تتم الإشارة إليه لاحقًا في قاعدة إعادة الكتابة باستخدام "٪ 1".
     
     
     
  • وأخيراً ، السطر الرابع في التعليمة البرمجية هو القاعدة rewrite. لا يتم تنفيذ إعادة الكتابة ما لم يتم استيفاء الشروط السابقة المذكورة. في هذه الحالة ، إليك قاعدة إعادة الكتابة:
     
     

    RewriteRule ^(.*)$ http://new_domain.com/querypage/%1 [R=301,L] 

    سيبدو عنوان URL المكتوب كما يلي:
     
     

    http://new_domain.com/querypage/5 


    بمجرد إعادة كتابة عنوان URL ، سيتم إرساله إلى المتصفح وعرضه بدلاً من عنوان URL القديم وسيتم إعادة توجيه المستخدم إلى هذا الموقع الجديد. وفقًا للجزء الأخير من القاعدة ، هذه عملية إعادة توجيه 301 ، ثم يتم الإبلاغ عنها لإنهاء هذه النقطة.
     
     
 
يجب أن يزودك هذا بمعلومات كافية لإنشاء إعادة توجيه 301 الخاصة بك للصفحات التي تستخدم سلسلة استعلام. هناك العديد من الطرق لإجراء عمليات إعادة التوجيه وكذلك العديد من الطرق لكتابة جزء التعبير العادي من إعادة التوجيه. إذا لم تكن معتادًا على استخدام التعبير العادي ، فستكون توصيتنا للتشاور مع مطور متمرس. تأكد من عمل نسخة احتياطية من موقعك قبل إجراء أي تغييرات على ملفات موقعك على الويب.
 
 
 
 

Was this answer helpful?