تشير إعادة كتابة عنوان URL إلى عملية تعديل عنوان URL لجعله أسهل وأكثر سهولة في الوصول لمستخدمي الإنترنت. عادةً ما يحدث هذا التغيير لجعل عنوان URL أقصر ومتسقًا. لذلك سيتذكره المستخدمون ولن يواجهوا أي مشكلة في القراءة أو الكتابة عند الحاجة..
في هذه الأيام ، يعرف مستخدمو الإنترنت أن هناك مخاطر هائلة على الإنترنت. وعندما نصادف عنوان URL طويل الذيل مكون من أرقام وحروف ، فإننا نميل إلى الشك فيه.
لهذا السبب من المهم ضمان ثقة الزائرين عندما يواجهون عنوان URL الخاص بك لأول مرة من خلال جعله قصيرًا وذو مغزى.
إذا كنت لا تزال غير قادر على فهم مفهوم إعادة كتابة عنوان URL بشكل أفضل ، فأنا أدعوك لقراءة هذه المقالة بعناية.
الفصل 1: ما هي إعادة كتابة عنوان URL؟
في هذا الفصل ، سنحاول توضيح الموضوعات الأساسية لإعطائك فكرة واضحة عما تعنيه إعادة كتابة عنوان URL.
1.1 تعريف إعادة كتابة عناوين URL تمتلك
جميع الخوادم تقريبًا ، سواء أكانت Apache أو Nginx أو Microsoft IIS أو غيرها ، القدرة على تعديل عناوين URL قبل أن تكون مرئية للباحثين.
المصدر: img.blog
يحدث هذا التغيير عادةً عندما يكون المستند المطلوب موجودًا في مكان آخر ويجب إعادة توجيه الزائر إلى الموقع الجديد بدلاً من ذلك.
بالإضافة إلى عمليات إعادة الكتابة الخارجية هذه حيث يطلب الزائر عنوان URL ويتحقق الخادم مما إذا كانت بعض عمليات إعادة التوجيه تنطبق على عنوان URL المطلوب ، فهناك أيضًا عمليات إعادة كتابة داخلية.
يمكن للخوادم التعرف بسرعة على المستند أو المورد الذي يجب توفيره في عنوان URL ، بغض النظر عن مكان تخزينه في بنية المجلد الداخلي.
عندما نأخذ حالة WordPress على سبيل المثال ، يتم تخزين كل مشاركة مدونة في قاعدة بيانات ويتم تعيين معرف لها. يمكن دائمًا طلب الصفحات الفردية عبر هذا المعرف.
1.2 كيف تعمل إعادة كتابة URL؟
تضع ميزة إعادة كتابة عنوان URL طبقة فوق العنوان الأصلي وتحولها إلى شيء يسهل العثور عليه وذو مغزى.
المصدر: linuxteaching
من وجهة نظر المستخدم ، بعد إعادة الكتابة ، يظل عنوان URL لموقع الويب كما هو في المتصفح ، ولكنه أكثر اتساقًا.
ولكن وراء الكواليس ، يعيد المتصفح كتابة عنوان URL في هذه الفوضى المعقدة ويرسل طلبًا إلى الخوادم.
تعد عمليات إعادة كتابة عنوان URL مفيدة للغاية أيضًا عند تغيير بنية الخادم ونقل الموارد من مجلد إلى آخر.
في هذه الحالة ، سيكتب مسؤول النظام ببساطة الجزء الذي يشير إليه عنوان URL المألوف.
في الأساس ، نظرًا لأن المورد قد تم نقله ، فسيكون له موقع مختلف. لذلك ، يلزم إعادة الكتابة لتوجيه عنوان URL المعاد كتابته إلى موقع المورد الجديد.
يجب عدم الخلط بين هذا وبين وظائف إعادة التوجيه التي تحدث عندما يتم استبدال مورد بمورد مختلف.
1.3 ما هي أهمية إعادة كتابة عنوان URL؟
من المهم للغاية أن تكون عناوين URL منطقية وتعطي فكرة عن الصفحة التي تشير إليها ، مع سهولة فهمها لمحركات البحث.
لا تُظهر إعادة كتابة عنوان URL الأعمال الداخلية والإحصاءات وراء عنوان موقع الويب للمستخدم ، مما يمنعه من رؤية سلاسل الاستعلام ، الأمر الذي لا يثبت أنه مفيد للموقع.
هذه العملية ليست مفيدة فقط لمن يشاهدها أو يقرأها ، ولكنها تساهم أيضًا في الجانب الأمني للموقع من خلال منع القرصنة أو الوصول من قبل المستخدمين الضارين إلى حد كبير.
يهدف إلى إنشاء عنوان URL غني بالكلمات الرئيسية ، مما يعني تضمين الكلمة الرئيسية في نص عنوان URL ، مما سيساعد عملية تحسين محركات البحث بشكل فعال.
يساعد هذا في ضمان أن الموقع قيد التطوير قد تم تحسينه بالفعل إلى حد ما قبل إطلاقه.
تميل عناوين URL التي تم إنشاؤها أيضًا إلى إخفاء الروابط ، والتي يبدو أنها تمتد في معظم الأحيان لفترة طويلة.
بالإضافة إلى ذلك ، قد يستمر استخدام نفس عنوان URL ، حتى إذا كان هناك تغيير في الرابط الأصلي.
يمكن إجراء عملية إعادة كتابة عنوان URL على أي نوع من أنواع المواقع أو نظام إدارة محتوى الويب ، سواء كان موقعًا تم تطويره بواسطة asp.net أو تم إنشاؤه باستخدام التكنولوجيا. PHP.
تتم عملية إعادة كتابة عنوان URL وفقًا للغات واحتياجات مواقع الويب.
يبدو أن هذا ممكن مع تقنية ASP.NET بشكل فعال ، لأنها تشبه خادم معلومات الإنترنت (IIS). في الواقع ، ASP.NET هو محرك برمجة نصية من جانب الخادم (IIS) ينتج صفحات ويب تفاعلية.
أصبحت إعادة كتابة عنوان URL ممكنة أيضًا مع PHP مع إعادة كتابة mod لخادم Apache ، من بين أمور أخرى.
علاوة على ذلك ، يبدو أيضًا أنها سهلة الاستخدام من خلال الواجهة. من المفيد أيضًا إذا أراد المستخدم إزالة قسم من عنوان URL للانتقال إلى المستوى الأعلى ، وهو أمر مفيد جدًا بالنسبة له.
لنفترض أن مستخدمًا انتقل إلى example.com/seo/recritture-url وأراد العودة إلى الصفحة الرئيسية للموقع. يمكنه فقط الاحتفاظ بـ example.com وحذف الأجزاء الأخرى.
1.4 لماذا تعد إعادة كتابة عنوان URL مفيدة لتحسين محركات البحث؟
استخدام إعادة كتابة عنوان URL له مزايا عديدة. من ناحية أخرى ، تساعد إعادة كتابة عناوين URL في إمكانية الوصول وتحسين تجربة المستخدم.
ببساطة ، عندما ينظر المستخدم إلى عنوان URL في نتيجة محرك بحث ، لا يتعين عليه معرفة ما تدور حوله هذه الصفحة أو المقالة.
أيضًا ، لا تشجع عناوين URL الفوضوية الأشخاص على النقر عليها ، مما قد يؤدي إلى انخفاض نسبة النقر إلى الظهور. هذا الموقف سيء بشكل عام بالنسبة لتحسين محركات البحث وأداء الموقع.
إلى جانب ذلك ، تساعد عناوين URL الودية في تحسين المحتوى لتحسين محركات البحث.
سيساعدك عنوان URL الذي يتضمن عنوان المقالة والكلمة الرئيسية الرئيسية في فهرسة Google وتصور الروبوتات لمقالك أو صفحة الويب الخاصة بك.
نتيجة لذلك ، تؤدي عناوين URL المُحسّنة لتحسين محركات البحث من خلال إعادة كتابة عناوين URL إلى رؤية أفضل ومصداقية أكبر مع المستخدمين وحجم حركة مرور أعلى بشكل طبيعي.
بصرف النظر عن ذلك ، فإن استخدام URL Rewrite يساعد أيضًا في الحفاظ على اتساق مسار عنوان URL وبنية اسم الصفحة.
أخيرًا ، تساعد عمليات إعادة الكتابة أيضًا في الأداء من خلال التخزين المؤقت في وضع المستخدم واستكشاف الأخطاء وإصلاحها ، لأنها تدعم تتبع الطلبات الفاشلة.
1.5 إعادة كتابة عنوان URL مقابل إعادة التوجيه
على عكس عمليات إعادة كتابة عنوان URL ، فإن إعادة التوجيه هي إجراء من جانب العميل ، وليس إجراءً من جانب الخادم.
المصدر: linuxteaching
من وجهة نظر المستخدم ، بعد إعادة الكتابة ، يظل عنوان URL لموقع الويب كما هو في المتصفح ، ولكنه أكثر اتساقًا.
ولكن وراء الكواليس ، يعيد المتصفح كتابة عنوان URL في هذه الفوضى المعقدة ويرسل طلبًا إلى الخوادم.
تعد عمليات إعادة كتابة عنوان URL مفيدة للغاية أيضًا عند تغيير بنية الخادم ونقل الموارد من مجلد إلى آخر.
في هذه الحالة ، سيكتب مسؤول النظام ببساطة الجزء الذي يشير إليه عنوان URL المألوف.
في الأساس ، نظرًا لأن المورد قد تم نقله ، فسيكون له موقع مختلف. لذلك ، يلزم إعادة الكتابة لتوجيه عنوان URL المعاد كتابته إلى موقع المورد الجديد.
يجب عدم الخلط بين هذا وبين وظائف إعادة التوجيه التي تحدث عندما يتم استبدال مورد بمورد مختلف.
1.3 ما هي أهمية إعادة كتابة عنوان URL؟
من المهم للغاية أن تكون عناوين URL منطقية وتعطي فكرة عن الصفحة التي تشير إليها ، مع سهولة فهمها لمحركات البحث.
لا تُظهر إعادة كتابة عنوان URL الأعمال الداخلية والإحصاءات وراء عنوان موقع الويب للمستخدم ، مما يمنعه من رؤية سلاسل الاستعلام ، الأمر الذي لا يثبت أنه مفيد للموقع.
هذه العملية ليست مفيدة فقط لمن يشاهدها أو يقرأها ، ولكنها تساهم أيضًا في الجانب الأمني للموقع من خلال منع القرصنة أو الوصول من قبل المستخدمين الضارين إلى حد كبير.
يهدف إلى إنشاء عنوان URL غني بالكلمات الرئيسية ، مما يعني تضمين الكلمة الرئيسية في نص عنوان URL ، مما سيساعد عملية تحسين محركات البحث بشكل فعال.
يساعد هذا في ضمان أن الموقع قيد التطوير قد تم تحسينه بالفعل إلى حد ما قبل إطلاقه.
تميل عناوين URL التي تم إنشاؤها أيضًا إلى إخفاء الروابط ، والتي يبدو أنها تمتد في معظم الأحيان لفترة طويلة.
بالإضافة إلى ذلك ، قد يستمر استخدام نفس عنوان URL ، حتى إذا كان هناك تغيير في الرابط الأصلي.
يمكن إجراء عملية إعادة كتابة عنوان URL على أي نوع من أنواع المواقع أو نظام إدارة محتوى الويب ، سواء كان موقعًا تم تطويره بواسطة asp.net أو تم إنشاؤه باستخدام التكنولوجيا. PHP.
تتم عملية إعادة كتابة عنوان URL وفقًا للغات واحتياجات مواقع الويب.
يبدو أن هذا ممكن مع تقنية ASP.NET بشكل فعال ، لأنها تشبه خادم معلومات الإنترنت (IIS). في الواقع ، ASP.NET هو محرك برمجة نصية من جانب الخادم (IIS) ينتج صفحات ويب تفاعلية.
أصبحت إعادة كتابة عنوان URL ممكنة أيضًا مع PHP مع إعادة كتابة mod لخادم Apache ، من بين أمور أخرى.
علاوة على ذلك ، يبدو أيضًا أنها سهلة الاستخدام من خلال الواجهة. من المفيد أيضًا إذا أراد المستخدم إزالة قسم من عنوان URL للانتقال إلى المستوى الأعلى ، وهو أمر مفيد جدًا بالنسبة له.
لنفترض أن مستخدمًا انتقل إلى example.com/seo/recritture-url وأراد العودة إلى الصفحة الرئيسية للموقع. يمكنه فقط الاحتفاظ بـ example.com وحذف الأجزاء الأخرى.
1.4 لماذا تعد إعادة كتابة عنوان URL مفيدة لتحسين محركات البحث؟
استخدام إعادة كتابة عنوان URL له مزايا عديدة. من ناحية أخرى ، تساعد إعادة كتابة عناوين URL في إمكانية الوصول وتحسين تجربة المستخدم.
ببساطة ، عندما ينظر المستخدم إلى عنوان URL في نتيجة محرك بحث ، لا يتعين عليه معرفة ما تدور حوله هذه الصفحة أو المقالة.
أيضًا ، لا تشجع عناوين URL الفوضوية الأشخاص على النقر عليها ، مما قد يؤدي إلى انخفاض نسبة النقر إلى الظهور. هذا الموقف سيء بشكل عام بالنسبة لتحسين محركات البحث وأداء الموقع.
إلى جانب ذلك ، تساعد عناوين URL الودية في تحسين المحتوى لتحسين محركات البحث.
سيساعدك عنوان URL الذي يتضمن عنوان المقالة والكلمة الرئيسية الرئيسية في فهرسة Google وتصور الروبوتات لمقالك أو صفحة الويب الخاصة بك.
نتيجة لذلك ، تؤدي عناوين URL المُحسّنة لتحسين محركات البحث من خلال إعادة كتابة عناوين URL إلى رؤية أفضل ومصداقية أكبر مع المستخدمين وحجم حركة مرور أعلى بشكل طبيعي.
بصرف النظر عن ذلك ، فإن استخدام URL Rewrite يساعد أيضًا في الحفاظ على اتساق مسار عنوان URL وبنية اسم الصفحة.
أخيرًا ، تساعد عمليات إعادة الكتابة أيضًا في الأداء من خلال التخزين المؤقت في وضع المستخدم واستكشاف الأخطاء وإصلاحها ، لأنها تدعم تتبع الطلبات الفاشلة.
1.5 إعادة كتابة عنوان URL مقابل إعادة التوجيه
على عكس عمليات إعادة كتابة عنوان URL ، فإن إعادة التوجيه هي إجراء من جانب العميل ، وليس إجراءً من جانب الخادم.
في الأساس ، تحدث إعادة الكتابة عندما يتغير عنوان المورد ، أو نحتاج إلى طبقة أبسط وأكثر سهولة في الاستخدام.
يحدث هذا خلف الكواليس ولا يعلم المستخدم به. في المقابل ، تحدث إعادة التوجيه عندما يختفي المورد.
يمكن أن تحدث عمليات إعادة التوجيه أيضًا عندما نتوقع كيف سيحاول المستخدم الوصول إلى مورد وتكوين وظائف إعادة التوجيه لضمان وصوله إلى المورد بشكل صحيح.
على سبيل المثال ، دقة WWW هي إجراء إعادة توجيه حيث بغض النظر عن كيفية بحث المستخدم عن صفحة Twaino الرئيسية ، فإنهم يستخدمون WWW. قبل اسم المجال أم لا ، سيهبطون دائمًا على Twaino.com.
إعادة التوجيه إعادة | الكتابة |
من جانب العميل | من جانب الخادم |
يتغير عنوان URL في شريط البحث. | هنا لا يتغير عنوان URL في شريط البحث ، إنه يتغير فقط. |
تدعم إعادة التوجيه الرموز التالية:301: Permanent؛302: وجدت ؛303: انظر أخرى ؛307: مؤقت. | حالة إعادة التوجيه أو عدم وجود رمز غير قابل للتطبيق. |
مفيد لتحسين محرك البحث من خلال إجبار محرك البحث على تحديث عنوان URL. | مفيد أيضًا لمحركات البحث التي تستخدم عنوان URL صديقًا لإخفاء عنوان URL فوضوي. |
مثال: من http://www.yourdomain.com إلى http://yourdomain.com في المتصفح | مثال: https://www.twaino.com/ إلى twaino.com |
يمكن إعادة التوجيه إلى نفس الموقع أو موقع غير ذي صلة. | يعيد عادةً الكتابة إلى نفس الموقع باستخدام مسار نسبي ، على الرغم من أنه إذا كان لديك وحدة ARR مثبتة ، يمكنك إعادة الكتابة إلى موقع مختلف. عند إعادة الكتابة على موقع آخر ، تعمل إعادة كتابة عنوان URL مثل الوكيل العكسي. |
تدفق طلب الصفحة هو:المتصفح يطلب صفحة ؛يستجيب الخادم برمز حالة إعادة التوجيه ؛يقدم المتصفح طلبًا ثانيًا إلى عنوان URL الجديد ؛يستجيب الخادم لعنوان URL الجديد. | تدفق طلب الصفحة هو:المتصفح يطلب صفحة ؛تتم إعادة كتابة عنوان URL لتقديم طلب للصفحة المحدثة عمليًا في IIS. |
الفصل 2: ما سبب أهمية إعادة كتابة عنوان URL؟
هذا الفصل مخصص لسبب وجوب قيام مشرفي المواقع بإعادة الكتابة.
2.1. يجب أن تكون التطبيقات آمنة
. من المهم لمشرفي المواقع حماية مواقعهم الإلكترونية من جميع أنواع الهجمات. في الواقع ، يجب ألا يتمكن إلحاق الضرر بموقعك عن طريق تعديل عنوان URL يشير إلى تطبيقاتك.
لضمان أمان موقعك ، تحقق من جميع متغيرات GET القادمة من زوار موقعك.
على سبيل المثال ، تخيل أن لدينا نصًا بسيطًا يعرض جميع المنتجات في إحدى الفئات. عادةً ما يبدو كالتالي:
- myapp.php؟ target =showproducts & categoryid= 123
ولكن عندما يكتب ScriptKiddie ™ في شريط التنقل الخاص بهم myapp.php؟ target = showproducts & categoryid = youarebeinghacked ، ستعرض من المواقع العديد رسائل خطأ تشكو من استخدام استعلام SQL سيئ ، معرف مورد MySQL غير صالح ، إلخ.
إنه يظهر فقط أن هذه المواقع ليست آمنة على الإطلاق أو آمنة بشكل جيد.
2.2. يجب أن تكون التطبيقات متوافقة مع محرك البحث
. هذا غير معروف بشكل عام ، ولكن العديد من محركات البحث لن تقوم بفهرسة موقعك بعمق إذا كان يحتوي على روابط لصفحات ديناميكية مثل تلك المذكورة أعلاه.
يأخذون فقط جزء “الاسم” من عنوان URL. أي كل شيء قبل علامة الاستفهام ، والتي تحتوي على المعلمات اللازمة لمعظم البرامج النصية لتعمل بشكل صحيح ، ثم تحاول جلب محتوى الصفحة.
لتوضيح ذلك ، إليك بعض الروابط من صفحتنا الخيالية:
- myapp.php؟ target =showproducts & categoryid= 123؛
- myapp.php؟ target =showproducts & categoryid= 124 ؛
- myapp.php؟ target =showproducts & categoryid= 125.
لسوء الحظ ، هناك فرصة جيدة أن تحاول بعض محركات البحث تنزيل صفحة myapp.php.
في معظم الحالات ، يؤدي استدعاء برنامج نصي مثل هذا إلى حدوث خطأ أو عرض المحتوى المناسب الذي يشير إليه الرابط.
فقط جرب هذا البحث على google.com:
“لديك خطأ في بناء جملة sql” .php -forum
ستلاحظ وجود أخطاء كبيرة وتهديدات أمنية في البرامج النصية المدرجة.
2.3 يجب أن تكون التطبيقات سهلة الاستخدام
إذا كان موقع الويب الخاص بك يستخدم تطبيقًا مثل
http://www.downloadsite.com؟category=34769845698752354، فسيواجه معظم زوار موقعك صعوبة في العودة إلى فئتهم المفضلة في كل مرة يغادرون فيها من الصفحة الرئيسية من موقعك.
من الأسهل على المستخدم العثور على عنوان URL في القائمة المنسدلة للمتصفحات عند الكتابة في حقل “الموقع” ، على الرغم من أن هذا بالطبع لا يعمل إلا إذا قام المستخدم بزيارته من قبل.
الفصل 3: ما هي قواعد إعادة كتابة عنوان URL؟
من الواضح أن إعادة كتابة عناوين URL هي فرصة للمواقع لجعل عناوين URL الخاصة بها سهلة الاستخدام. ومع ذلك ، يجب أن تحترم هذه الممارسة قواعد معينة لتكون فعالة وتنتج التأثيرات المرغوبة.
سنناقش في هذا الفصل القواعد التي يجب احترامها من أجل إعادة كتابة عناوين URL الخاصة بالموقع بشكل صحيح.
3.1. كيفية إعادة كتابة عنوان URL باستخدام IIS؟
لإعادة كتابة عنوان URL باستخدام IIS ، يجب عليك أولاً تثبيت البرنامج القابل للتنزيل على نظام Microsoft.
بمجرد التثبيت ، سترى رمز “Url Rewrite” جديد في وحدة تحكم إدارة IIS.
الخطوة 1: وحدة تحكم إدارة IIS مع إعادة كتابة عنوان URL المضافة
يمكنك إدارة إعادة كتابة عنوان URL على مستوى الخادم أو للمواقع الفردية كما تراه مناسبًا.
بفضل وحدة إعادة كتابة عنوان URL ، سترى “القوالب” المستخدمة. القوالب في واحد من ثلاثة أوضاع:
- مطابقة تامة؛
- البدل.
- وتعبيرات ECMAScript العادية ، وهي تعبيرات عادية متوافقة مع Perl.
هناك نوعان من القواعد: الواردة والصادرة.
تقوم القواعد الواردة بفحص عناوين URL للطلب وتعديلها. بينما تقوم القواعد الصادرة بفحص حركة المرور المرسلة ، ابحث عن عناوين URL التي تحتوي عليها وأعد كتابتها إذا لزم الأمر ؛
يكون هذا أكثر إثارة للاهتمام عندما يمكن للمحتوى استخدام عنوان URL مطلق وهو ليس ما يجب أن يتلقاه المستخدم ؛
تتمثل إحدى فوائد إعادة كتابة عنوان URL في أنها تدعم عددًا من القواعد المضمنة المختلفة التي تجعل الحياة أسهل عندما تريد إجراء إعادة كتابة مشتركة.
القائمة الكاملة للقواعد المضمنة هي:
- القاعدة مع خريطة إعادة الكتابة: تسمح بتحديد مجموعة من المسارات واستبدالها في شكل قائمة بسيطة ؛
- طلبات الحظر: منع الوصول إلى المسار ؛
- عنوان URL المألوف: قم بإنشاء قواعد بسرعة لتعيين أجزاء المسار إلى سلاسل الاستعلام ؛
- وكيل عكسي: يسمح للخادم الحالي بعكس وكيل آخر ؛
- فرض عناوين URL الصغيرة: يؤدي هذا إلى إجبار العميل على استخدام عناوين URL الصغيرة دائمًا عبر إعادة توجيه HTTP حالة 301 “دائمة” ؛
- اسم المجال المتعارف عليه: يستخدم إعادة توجيه HTTP الحالة 301 “الدائمة” للتأكد من أن العملاء يستخدمون دائمًا اسم المجال المحدد ؛
- إضافة أو إزالة رمز الشرطة المائلة اللاحقة: سيؤدي هذا دائمًا إلى إضافة أو إزالة الشرطة المائلة اللاحقة في مسار عنوان URL باستخدام إعادة توجيه الحالة HTTP 301 “الدائمة”.
الخطوة 2 : يسمح لك إنشاء قاعدة باختيار قاعدة
مضمنة يمكن من خلالها بدء القواعد المضمنة بشكل رائع لأنه على الرغم من أنها تأتي مع معالج مخصص إذا لزم الأمر ، إلا أنها تنشئ قواعد قياسية يمكنك تعديلها أو تعديلها حسب الحاجة.
تحظى قاعدة URL الودية بشعبية كبيرة لأولئك الذين ليس لديهم نظام يقوم بذلك تلقائيًا.
تبدأ بإدخال مثال “القبيح” الذي يحتاجه الموقع بالفعل.
الخطوة 3 : إنشاء قاعدة URL ودية
من القواعد المضمنة الأخرى الأكثر استخدامًا قاعدة الوكيل العكسي.
مرة أخرى ، يرشدك النظام من خلال تكوين افتراضي كفء فيما يمكن أن يكون مهمة معقدة للغاية.
يحتوي على خيارات مضمنة وقابلة للتحرير مثل:
- ما إذا كان يجب دائمًا ربط استجابات HTTPS بوكلاء HTTP القياسي ؛
- ما إذا كنت تريد استخدام قاعدة صادرة لإخفاء اسم الخادم الداخلي أم لا.
غالبًا ما يستخدمه الأشخاص ليكونوا قادرين على إعداد خادم مركزي مع مضيفي الويب الظاهريين على نفس عنوان IP للتعامل مع الطلبات الواردة التي يجب إرسالها إلى خوادم داخلية مختلفة.
الشكل د: إنشاء وكيل عكسي
القاعدة الأخيرة التي سنناقشها تتعلق بإعادة كتابة البطاقات.
تتيح لك هذه إنشاء قائمة بعناوين URL وترجمتها إلى عناوين URL بديلة.
في حد ذاته ، تكون بطاقة إعادة الكتابة عديمة الفائدة ، ويجب استخدامها كجزء من قاعدة أكبر بدلاً من ذلك أو جنبًا إلى جنب مع الأنماط البديلة.
هذه مفيدة بشكل خاص عند تصميم أو تجديد موقع يستخدم عناوين URL غير متوقعة.
من خلال الجمع بين إعادة التوجيه باستخدام حالة HTTP 301 “الدائمة” مع بطاقة إعادة الكتابة ، يمكنك تخصيص ترجماتك في المواقف التي لا تعمل فيها القواعد بشكل جيد.
بمجرد تكوين القاعدة الأساسية ، يمكنك تعديلها حسب الحاجة. محرر القواعد يكسر الأشياء جيدًا.
تبدأ باسم القاعدة ونمط عنوان URL المراد مطابقته.
من هنا ، يمكنك إضافة شروط متنوعة ، مثل:
- البحث عن سلسلة معينة في معلمة URL ؛
- متغير بيئة الخادم ؛
- إلخ.
يمكنك إخباره بمطابقة جميع الشروط أو أي منها. إذا لم يتم استيفاء الشروط ، فلن تقوم القاعدة بإعادة الكتابة.
يمكنك أيضًا إجراء استبدالات على متغيرات الخادم ، وهو أمر رائع لفرض سلوكيات معينة.
تتضمن متغيرات الخادم قائمة كبيرة جدًا من الأشياء التي يجب العمل بها ، بما في ذلك إعادة كتابة الخرائط التي قمت بإنشائها.
ثم تحدد ما يجب أن تفعله القاعدة بالفعل ، أي إجراء إعادة كتابة أو إعادة توجيه والتي سترسل بالفعل رمز حالة HTTP لإعادة التوجيه إلى العميل للاستعلام عن عنوان URL الجديد.
ثم تقوم بتعريف نموذج لإعادة الكتابة نفسها. أخيرًا ، لديك بعض الخيارات:
- إضافة سلسلة الاستعلام ؛
- تسجيل الطلب
- لا تقم بتشغيل أي قواعد أخرى بمجرد الانتهاء من هذا.
3.2 كيف تعيد كتابة عنوان URL باستخدام Apache؟
فيما يلي بعض الخطوات حول كيفية تحديد قواعد إعادة كتابة عنوان URL باستخدام Apach:
المصدر: المجتمع
الخطوة 1: تثبيت خادم الويب Apache
قبل البدء ، تأكد من تثبيت حزمة خادم الويب Apache على نظامك. إذا لم يتم تثبيته ، يمكنك تثبيته بالأمر التالي: ” apt-get install apache2 -y ”
بمجرد تثبيت الحزمة ، ابدأ خدمة Apache بالأمر التالي: ” systemctl start apache2 ”.
بعد ذلك ، افتح متصفح الويب واكتب عنوان URL http: // your-server-ip للتحقق من خادم الويب Apache.
الخطوة 2: تمكين mod_rewrite
افتراضيًا ، يتم تثبيت وحدة mod_rewrite مع حزمة Apache ، لكنها معطلة. لذلك سيكون عليك تنشيطه أولاً.
يمكنك تنشيطه بالأمر التالي: “إعادة كتابة a2enmod”.
ثم أعد تشغيل خدمة Apache لتطبيق التغييرات وتحقق من وحدة Apache mod_rewrite باستخدام الأمر التالي: apache2ctl -M | grep Rewrite_module.
يجب أن تحصل على المخرجات التالية: Rewrite_module (shared)
الخطوة 3: تمكين ملفات .htaccess
يمكنك تكوين قواعد إعادة الكتابة مباشرةً في ملف التكوين الرئيسي لـ Apache. ومع ذلك ، يوصى بكتابة القواعد في ملف .htaccess داخل كل موقع ويب.
بشكل افتراضي ، لا يسمح Apache باستخدام ملف htaccess. لذلك سوف تحتاج إلى تمكين ملف .htaccess في ملف تكوين المضيف الظاهري الافتراضي الخاص بك.
للقيام بذلك ، قم بتحرير ملف تكوين المضيف الظاهري الافتراضي لـ Apache: nano /etc/apache2/sites-available/000-default.conf.
أضف الأسطر التالية قبل السطر:
<Directory / var / www / html>
Options Index FollowSymLinks MultiViews
Allow Override All
Require All Granted
</Directory>
تأكد من حفظ الملف وإغلاقه ، ثم أعد تشغيل خدمة Apache لتطبيق التغييرات: systemctl إعادة تشغيل اباتشي 2.
الخطوة 4: تكوين إعادة كتابة عناوين URL
لفهم كيفية عمل إعادة كتابة عناوين URL ، سننشئ صفحة home.html في الدليل الجذر لوثيقة Apache.
سنقوم بعد ذلك بإعداد إعادة كتابة أساسية لعنوان URL تنتقل إلى الصفحة http: // your-server-ip / home وتحويلها إلى مسار الصفحة الفعلي http: // your-server-ip / home .html.
لنبدأ بإنشاء صفحة home.html:
nano /var/www/html/home.html
أضف المحتوى التالي:
<html>
<head>
<title> الصفحة الرئيسية </ title>
</head>
<body>
<h1> الصفحة الرئيسية </ h1>
<h2> هذه صفحتي الرئيسية </ h2>
</body>
</html>
احفظ وأغلق الملف عند الانتهاء.
بعد ذلك ، قم بإنشاء ملف .htaccess في دليل جذر المستند الافتراضي لموقع الويب لاختبار mod_rewrite.
nano /var/www/html/.htaccess
أولاً ، أضف السطر التالي لتمكين محرك إعادة الكتابة: تم تمكين RewriteEngine.
بعد ذلك ، أضف قاعدة إعادة الكتابة التالية التي تعيد توجيه الزائرين إلى home.html إذا طلبوا http: // your-server-ip / home : RewriteRule ^ home $ home.html [NC].
احفظ وأغلق الملف عند الانتهاء.
يتم عرض شرح موجز لبناء جملة قاعدة إعادة الكتابة أدناه:
- ^: هذا سيتطابق مع أي نص بعد عنوان IP الخاص بالخادم ؛
- $: يشير هذا إلى نهاية عنوان URL.
- home: هذا يطابق المنزل الفعلي للسلسلة ؛
- home.html: يحدد هذا الملف الفعلي الذي يصل إليه الزائر ؛
- [NC]: هذا يجعل القاعدة غير حساسة لحالة الأحرف.
يمكنك الآن زيارة الصفحة الرئيسية على http: // your-server-ip / home على متصفح الويب الخاص بك. سيعيد Apache التوجيه إلى صفحة home.html.
3.3 كيفية القيام بإعادة الكتابة باستخدام nginx
في nginx ، يمكن تحديد تعليمة إعادة الكتابة في واحد من ثلاثة سياقات: server ، و location ، و if.
3.3.1. مثال على إعادة كتابة Nginx باستخدام $ 1، $ 2، ..
هذا مثال على توجيه Nginx لإعادة الكتابة: إعادة كتابة ^ (/ data /.*)/ geek / (\ w +) \.؟. * $ 1 / linux / $ 2.html أخيرًا.
على سبيل المثال:
سيتم إعادة كتابة عنوان URL / data / distro / geek / test.php كـ url / data / distro / linux / test.html.
في هذا المثال ، عند استدعاء عنوان URL الأصلي باستخدام test.php من المستعرض ، ستتم إعادة كتابته وفقًا لقاعدة إعادة الكتابة أعلاه وتقديم صفحة test.html من / data / distro / linux /
في قاعدة إعادة الكتابة أعلاه:
- $ 1 و $ 2 يلتقط السلاسل المناسبة من عنوان URL الأصلي الذي لا يتغير ؛
- سيتطابق $ 1 في سلسلة الاستبدال مع ما هو داخل القوس الأول () في reg-ex. في مثالنا ، $ 1 هو / data /؛
- وبالمثل ، فإن $ 2 يطابق كل شيء داخل القوس الثاني () في reg-ex. إذن $ 2 هي (\ w +) ، وهي أي كلمة تأتي بعد / geek / في عنوان URL الأصلي ؛
- في مثالنا ، $ 2 هو اختبار أخير. ستتأكد هذه العلامة من التوقف عن البحث عن توجيه إعادة الكتابة في الموقع الحالي أو الحظر واستخدام عنوان URL الذي تم تغييره والبحث في موقع جديد عن أي توجيهات أخرى لإعادة الكتابة تطابق ؛
- * $: يشير هذا إلى الامتداد الموجود في عنوان URL الأصلي. يرجى ملاحظة أنه هنا سيتم استبدال امتداد عنوان URL الأصلي بـ .html في عنوان URL المعاد كتابته. لذا ، حتى إذا قمت باستدعاء .php في عنوان URL الأصلي ، فسيؤدي ذلك إلى عرض ملف .html فقط في عنوان URL المعاد كتابته.
على الرغم من أن قواعد إعادة الكتابة في Nginx تشبه قواعد Apache ، إلا أنه لا يزال هناك العديد من الاختلافات في كيفية كتابة قاعدة إعادة الكتابة في Nginx.
3.3.2. إنشاء ملف تحكم باستخدام إعادة كتابة Nginx
باستخدام إعادة الكتابة ، يمكنك توجيه العديد من عناوين URL الأصلية الواردة إلى نموذج وحدة تحكم رئيسي يخدم هذه الطلبات.
يوضح مثال إعادة الكتابة التالي هذا:
- Rewrite ^ / linux /(.*)$ /linux.php؟distro=$1 last؛
في هذا المثال ، عندما تستدعي عنوان URL thegeekstuff.com/linux/centos ، ستتم إعادة كتابته باستخدام القاعدة أعلاه وسيقدم للصفحة عنوان URL المعاد كتابته:
- thegeekstuff.com/linux.php؟distro=centos
كما ترى أعلاه ، أي عنوان url يطابق النمط الموجود هنا / linux / في عنوان url سيتم تقديمه بواسطة linux.php ، ولكن سيتم استخدام الجزء الأخير من عنوان url الوارد الأصلي كقيمة لوسيطة التوزيع في وحدة تحكم linux.php.
وبالتالي ، فإن قاعدة إعادة الكتابة أعلاه ستحول عنوان URL الوارد على النحو التالي:
- linux / centos يصبح linux.php؟ distro = centos؛
- linux / debian يصبح linux.php؟ distro = debian؛
- linux / redhat يصبح linux.php؟ distro = redhat؛
- إلخ
كما في المثال السابق ، نستخدم $ 1 في سلسلة الاستبدال لالتقاط كل شيء داخل القوس الأول () في reg-ex. في هذه الحالة ، يكون هذا هو الجزء الأخير من عنوان URL الأصلي الوارد.
نستخدم أيضًا العلم الأخير هنا لإرشاد nginx إلى التوقف عن البحث عن المزيد من توجيهات إعادة الكتابة في الكتلة الحالية والانتقال إلى الموقع المطابق التالي لمزيد من البحث.
3.3.3. أعد كتابة علامة الفاصل في سياق الموقع
في هذا المثال ، وضعنا شرط إعادة الكتابة في توجيه الموقع.
في هذا المثال ، توجيه الموقع هو / data / ، والذي يتطابق أيضًا مع $ 1 في سلسلة الاستبدال الواردة أدناه.
بيانات الموقع / {
Rewrite ^ (/ data /.*)/ geek / (\ w +) \.؟. * $ 1 / linux / $ 2.html break؛
إرجاع 403 ؛
}
إليك ما كان سيحدث إذا كنت قد استخدمت علامة “الأخيرة” أعلاه:
- لذا إذا كان لديك “الأخير” كعلامة ، بعد إعادة كتابة عنوان URL الأولي ، سيبحث Nginx عادةً عن توجيه إعادة الكتابة التالي لعنوان URL الجديد ؛
- في هذه الحالة ، سيستمر Nginx في إعادة التوجيه إلى نفس بيانات الموقع ويستمر في معالجة نفس قاعدة إعادة الكتابة بحد أقصى 10 مرات ، وفي النهاية سيعيد رمز الخطأ 500.
3.3.4. إضافة علامة استفهام إلى سلسلة استبدال Nginx Rewrite
إذا تضمنت سلسلة الاستبدال الكلمات الأساسية الجديدة للاستعلام ، يتم إلحاق الكلمات الأساسية السابقة للاستعلام بعدها.
إذا كنت لا ترغب في تبني هذه الطريقة ، فضع علامة استفهام في نهاية سلسلة الاستبدال لتجنب إلحاقها.
في المثال التالي ، في جزء سلسلة الاستبدال ، لا توجد علامة استفهام في النهاية.لا توجد علامة استفهام بعد $ 1:
إعادة كتابة ^ / linux /(.*)$ /linux.php؟distro=$1 last؛
في المثال أعلاه ، عندما تتضمن سلسلة الاستبدال الوسائط من الاستعلام الوارد ، يتم إلحاق الوسيطات من الاستعلام السابق بعدها.
عندما لا ترغب حقًا في حدوث هذه الإضافة ، فقد يكون لديك طريقة أخرى للخروج.
في المثال التالي ، في جزء سلسلة الاستبدال من إعادة كتابة Nginx ، يمكنك إضافة (؟) في النهاية ، أي أن هناك علامة استفهام بعد
إعادة كتابة 1 $ ^ / linux /(.*)$ /linux.php؟distro = 1 دولار؟ الاخير؛
في المثال أعلاه ، تتضمن سلسلة الاستبدال الوسائط من الطلب الوارد ، ثم لم يتم إلحاق الوسيطات من الطلب السابق بعدها.
3.3.5. ” if ” السياق وتوجيه إعادة الكتابة
توضح الأمثلة القليلة التالية أنه يمكننا استخدام إعادة الكتابة داخل التوجيه “if”.
يمكنك إجراء إعادة كتابة شرطية بناءً على مقارنة شروط “if” باستخدام متغيرات مثل $ مخطط و $ http_host و $ http_user_agent وما إلى ذلك كما هو موضح أدناه:
if ($ مخطط = “http”) {
أعاد كتابة ^ https: // www.thegeekstuff.com $ uri دائم ؛
}
إذا (http_host $ = thegeekstuff.com) {
إعادة كتابة (.*) https: //www.thegeekstuff.com$1 ؛
}
if ($ http_user_agent = MSIE) {Rewrite
^ (. *) $ / pdf / $ 1 pause؛
}
لاحظ أيضًا أن هناك طرقًا أفضل لتحقيق النتيجة النهائية للأمثلة أعلاه.
تم تقديم الأمثلة أعلاه فقط لإظهار أنه يمكننا إضافة توجيه إعادة الكتابة داخل عبارة “if” في ملف تكوين nginx.
يرجى ملاحظة أنه يمكنك أيضًا تعيين قيمة المعلمتين التاليتين على تشغيل أو إيقاف تشغيل في ملف تكوين nginx:
port_in_redirect to
المعطل
3.3.6. قم بإعادة كتابة Nginx إلى ملف سجل الأخطاء
بشكل افتراضي ، عندما يقوم Nginx بإعادة كتابة ناجحة ، فإنه لا يسجلها في ملف error.log.
في البداية ، عند كتابة قواعد إعادة الكتابة المعقدة ، تحتاج حقًا إلى التأكد من قيام Nginx بإعادة الكتابة حسب الحاجة.
للقيام بذلك ، تحتاج إلى تمكين سجل إعادة الكتابة ، والذي سيكتب إدخال سجل في كل مرة ينفذ فيها nginx إعادة كتابة ناجحة باستخدام أحد توجيهات إعادة الكتابة في ملف التكوين.
للقيام بذلك ،
- استخدم Rewrite_log وقم بتعيينه على on؛
- أضف السطرين التاليين إلى nginx default.conf الخاص بك:
note error_log /var/log/nginx/error.log؛
Rewrite_log على ؛
يشير السطر الأول إلى موقع ملف error_log حيث يجب كتابة رسائل إعادة الكتابة.
يرجى ملاحظة أن رسالة إعادة الكتابة هي من نوع الإشعار. لذلك تحتاج إلى إضافة “ملاحظة” في نهاية هذا السطر كما هو موضح أعلاه.
3.4. ما هي المشكلة الحقيقية مع قواعد إعادة كتابة عنوان URL؟
يستخدم مطورو تطبيقات الويب قواعد إعادة كتابة عنوان URL لإخفاء المعلمات في بنية مسار URL.
هذا يسهل على محركات البحث فهرسة جميع الصفحات على موقع الويب ، بينما تتلقى متصفحات الويب عنوان URL بتنسيق يفهمونه ويسهل على المستخدمين تذكره.
من المهم التأكد من قبول تطبيق الويب لهذه الطلبات وأن جميع معلمات URL يتم تحليلها بشكل صحيح.
فيما يلي ملخص للمشكلات التي يمكن أن تنشأ عندما تحاول أجهزة فحص الثغرات الأمنية على الويب فحص مواقع الويب التي تستخدم تقنية وقواعد إعادة كتابة عنوان URL:
3.4.1. لا يتم فحص المعلمات في عناوين URL من
المشكلات الشائعة التي تواجهها أدوات فحص الثغرات الأمنية على الويب عند فحص تطبيقات الويب التي تستخدم تقنية إعادة كتابة عناوين URL هي أن الماسحات الضوئية غير قادرة على تحديد المعلمات في . عناوين URL
يفترض المحللون أن عناوين URL هي أدلة وليست أسماء معلمات أو قيمًا ، ويتركونها بدون تحليل.
3.4.2.الثغرات الأمنية الممتدة
يمكن أن تتسبب هذه المشكلة في عمليات فحص ممتدة ونتائج فحص غير صحيحة.
على سبيل المثال ، إذا قام ماسح ثغرات الويب بفحص قاعدة بيانات أدوات تحتوي على 100000 أداة ، نظرًا لأن الماسح الضوئي غير قادر على تحديد وجود معلمة وقيمة في عنوان URL ، فقد يعتقد أنهما صفحات مختلفة. لذلك سيحاول استكشافها ومسحها ضوئيًا جميعًا.
إذا لم يتم التعامل مع مشكلات الذاكرة والاستثناءات الأخرى بشكل صحيح بواسطة الماسح الضوئي الخاص بك ، فقد يؤدي ذلك أيضًا إلى بدء تعطل برنامجك وهذا لا يترك لك أي نتائج.
3.4.3. يعد تكوين قواعد إعادة كتابة عنوان URL عملية صعبة:
نظرًا لأن تقنية إعادة كتابة عنوان URL أصبحت شائعة جدًا في تطبيقات الويب ، فإن العديد من أدوات فحص ثغرات الويب التجارية تسمح للمستخدمين بتكوين الماسح الضوئي. يتيح لهم ذلك تحديد المعلمات في عناوين URL وتحليلها.
ولكن على الرغم من إمكانية تكوين أدوات فحص ثغرات الويب لفحص مواقع الويب باستخدام قواعد إعادة كتابة عناوين URL ، فقد يواجه المستخدمون العديد من المشكلات الأخرى مثل:
- تكوين الدعم لقواعد إعادة كتابة عنوان URL أمر صعب للغاية ؛
- يجب أن يعرف المستخدم كيفية كتابة التعبيرات العادية ؛
- يجب أن يكون لدى المستخدم حق الوصول إلى ملفات تكوين خادم الويب.
لذلك ، إذا لم تكن مطورًا لتطبيق الويب نفسه أو لم تكن لديك معرفة متعمقة بتطبيق الويب ، فلا يمكن تكوين قواعد إعادة كتابة عنوان URL على الماسح الضوئي.
وحتى إذا كنت تعرف كيفية القيام بذلك ، فإن إعداد قواعد إعادة الكتابة يعد مهمة صعبة للغاية وتستغرق وقتًا طويلاً.
3.4.4. لا يتم فحص تطبيقات الويب بشكل صحيح بحثًا عن نقاط الضعف ،
بافتراض أنه يمكنك بنجاح تكوين قواعد إعادة كتابة عنوان URL في ماسح ثغرات الويب لديك ، فهناك مشكلات أخرى.
هناك عدد من القيود على كيفية مسح الماسحات الضوئية لتطبيق الويب. كإجراء أمني ، لا تقبل تطبيقات الويب طلبات HTTP “المترجمة” بالفعل.
افتراضيًا ، لا تقبل تطبيقات الويب .NET طلبات HTTP.
تصبح المشكلة أكثر أهمية عند تحليل تطبيقات الويب MVC لأن هذه التطبيقات تستخدم أسلوبًا مختلفًا لإعادة كتابة عنوان URL.
بعد تكوين قواعد إعادة كتابة عنوان URL في المحلل اللغوي ، يرسل المحلل نوعًا من طلبات HTTP يسمى الطلبات المترجمة.
على الرغم من أن أداة فحص أمان تطبيق الويب تشير إلى أن الفحص كان ناجحًا ، إلا أنه يتم رفض معظم طلبات HTTP ولا يتم فحص معلمات URL ، مما يمنحك إحساسًا زائفًا بالأمان.
الخلاصة
نلاحظ أن إعادة كتابة عناوين URL ضرورية في بعض الأحيان للتأكد من أن عنوانك لا يمنح مستخدمي الإنترنت شعورًا سيئًا.
إنها عملية تقدم العديد من الفوائد من وجهة نظر مصداقية موقع الويب وتحسين محركات البحث.
في هذا المحتوى ، أوضحنا مفهوم إعادة كتابة عناوين URL ورافقناها بأفضل الطرق لإعادة كتابة عناوين URL الخاصة بك.
ندعوك لمشاركة آرائك والموارد الأخرى حول مفهوم إعادة كتابة عنوان URL معنا.